27if (!defined(
'WEBPORTAL')) {
28 define(
'WEBPORTAL', 1);
30if (!defined(
'NOLOGIN')) {
33if (!defined(
'NOREQUIREUSER')) {
34 define(
'NOREQUIREUSER', 1);
36if (!defined(
'NOREQUIREMENU')) {
37 define(
'NOREQUIREMENU', 1);
39if (!defined(
'NOREQUIRESOC')) {
40 define(
'NOREQUIRESOC', 1);
42if (!defined(
'EVEN_IF_ONLY_LOGIN_ALLOWED')) {
43 define(
'EVEN_IF_ONLY_LOGIN_ALLOWED', 1);
45if (!defined(
'NOIPCHECK')) {
46 define(
'NOIPCHECK', 1);
50if (!function_exists(
'dol_getprefix')) {
60 function dol_getprefix($mode =
'')
62 global $dolibarr_main_instance_unique_id,
63 $dolibarr_main_cookie_cryptkey;
65 $tmp_instance_unique_id = empty($dolibarr_main_instance_unique_id) ?
66 (empty($dolibarr_main_cookie_cryptkey) ?
'' :
67 $dolibarr_main_cookie_cryptkey) : $dolibarr_main_instance_unique_id;
71 if (!empty($tmp_instance_unique_id)) {
72 return sha1(
'webportal' . $tmp_instance_unique_id);
74 return sha1(
'webportal' . $_SERVER[
'SERVER_NAME'].$_SERVER[
'DOCUMENT_ROOT'].DOL_DOCUMENT_ROOT);
80if (defined(
'MAIN_INC_REL_DIR')) {
81 $relDir = MAIN_INC_REL_DIR;
83include $relDir.
'../../main.inc.php';
85require_once DOL_DOCUMENT_ROOT .
'/user/class/user.class.php';
86require_once DOL_DOCUMENT_ROOT .
'/societe/class/societeaccount.class.php';
87require_once DOL_DOCUMENT_ROOT .
'/public/webportal/lib/webportal.lib.php';
88require_once DOL_DOCUMENT_ROOT .
'/webportal/class/context.class.php';
89require_once DOL_DOCUMENT_ROOT .
'/webportal/class/webportalmember.class.php';
90require_once DOL_DOCUMENT_ROOT .
'/webportal/class/webportalpartnership.class.php';
95$prefix = dol_getprefix(
'');
96$sessionname =
'WEBPORTAL_SESSID_' . $prefix;
97$sessiontimeout =
'WEBPORTAL_SESSTIMEOUT_' . $prefix;
98if (!empty($_COOKIE[$sessiontimeout]) && session_status() === PHP_SESSION_NONE) {
99 ini_set(
'session.gc_maxlifetime', $_COOKIE[$sessiontimeout]);
105$hookmanager->initHooks(array(
'main'));
107$logged_user =
new User($db);
108$anti_spam_session_key =
'dol_antispam_value';
110if (!defined(
'NOREQUIREDB') && empty($conf->webportal->enabled)) {
114if (!defined(
'WEBPORTAL_NOREQUIRETRAN') || (!defined(
'WEBPORTAL_NOLOGIN') && !empty(
$context->controllerInstance->accessNeedLoggedUser))) {
115 if (!is_object($langs)) {
116 include_once DOL_DOCUMENT_ROOT .
'/core/class/translate.class.php';
118 $langcode = (
GETPOST(
'lang',
'aZ09', 1) ?
GETPOST(
'lang',
'aZ09', 1) : (empty($logged_user->
conf->MAIN_LANG_DEFAULT) ? (!
getDolGlobalString(
'MAIN_LANG_DEFAULT') ?
'auto' : $conf->global->MAIN_LANG_DEFAULT) : $logged_user->
conf->MAIN_LANG_DEFAULT));
119 if (defined(
'MAIN_LANG_DEFAULT')) {
120 $langcode = constant(
'MAIN_LANG_DEFAULT');
122 $langs->setDefaultLang($langcode);
124 $langs->loadLangs(array(
'website',
'main'));
130if (!defined(
'WEBPORTAL_NOLOGIN') && !empty(
$context->controllerInstance->accessNeedLoggedUser)) {
131 $admin_error_messages = array();
132 $webportal_logged_thirdparty_account_id = isset($_SESSION[
"webportal_logged_thirdparty_account_id"]) && $_SESSION[
"webportal_logged_thirdparty_account_id"] > 0 ? $_SESSION[
"webportal_logged_thirdparty_account_id"] : 0;
134 if (empty($webportal_logged_thirdparty_account_id)) {
136 $langs->loadLangs(array(
"other",
"help",
"admin"));
139 $action =
GETPOST(
'action_login',
'alphanohtml');
141 if ($action ==
'login') {
142 $login =
GETPOST(
'login',
'alphanohtml');
143 $password =
GETPOST(
'password',
'password');
147 $context->setEventMessage($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Login")),
'errors');
148 $focus_element =
'login';
151 if (empty($password)) {
152 $context->setEventMessage($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Password")),
'errors');
153 if (empty($focus_element)) {
154 $focus_element =
'password';
169 $thirdparty_account_id =
$context->getThirdPartyAccountFromLogin($login, $password);
170 if ($thirdparty_account_id <= 0) {
172 dol_syslog($langs->transnoentitiesnoconv(
'WebPortalErrorFetchThirdPartyAccountFromLogin', $login), LOG_WARNING);
173 $context->setEventMessage($langs->transnoentitiesnoconv(
'WebPortalErrorAuthentication'),
'errors');
175 $_SESSION[
"webportal_logged_thirdparty_account_id"] = $thirdparty_account_id;
176 $webportal_logged_thirdparty_account_id = $thirdparty_account_id;
183 if (empty($webportal_logged_thirdparty_account_id)) {
186 setcookie($sessiontimeout, $conf->global->MAIN_SESSION_TIMEOUT, 0,
"/",
'', !empty($dolibarr_main_force_https),
true);
194 if ($webportal_logged_thirdparty_account_id > 0) {
199 $result = $websiteaccount->fetch($webportal_logged_thirdparty_account_id);
205 dol_syslog(
"Can't load third-party account (ID: $webportal_logged_thirdparty_account_id) even if session logged.", LOG_WARNING);
207 session_set_cookie_params(0,
'/',
null, !empty($dolibarr_main_force_https),
true);
208 session_name($sessionname);
211 $context->setEventMessage($langs->transnoentitiesnoconv(
'WebPortalErrorFetchLoggedThirdPartyAccount', $webportal_logged_thirdparty_account_id),
'errors');
219 $error_msg = $langs->transnoentitiesnoconv(
'WebPortalSetupNotComplete');
221 $context->setEventMessages($error_msg,
null,
'errors');
225 $result = $logged_user->fetch($user_id);
228 $error_msg = $langs->transnoentitiesnoconv(
'WebPortalErrorFetchLoggedUser', $user_id);
230 $context->setEventMessages($error_msg,
null,
'errors');
236 $logged_thirdparty = $websiteaccount->thirdparty;
237 if (!$logged_thirdparty || !($logged_thirdparty->id > 0)) {
238 $result = $websiteaccount->fetch_thirdparty();
240 $error_msg = $langs->transnoentitiesnoconv(
'WebPortalErrorFetchLoggedThirdParty', $websiteaccount->fk_soc);
243 $context->setEventMessage($error_msg,
'errors');
249 $logged_thirdparty = $websiteaccount->thirdparty;
253 $result = $logged_member->fetch(0,
'', $websiteaccount->thirdparty->id);
256 $error_msg = $langs->transnoentitiesnoconv(
'WebPortalErrorFetchLoggedMember', $websiteaccount->thirdparty->id);
258 $context->setEventMessage($error_msg,
'errors');
261 if (!$error && $logged_member->id > 0) {
265 $result = $logged_partnership->fetch(0,
'', $logged_member->id, $websiteaccount->thirdparty->id);
268 $error_msg = $langs->transnoentitiesnoconv(
'WebPortalErrorFetchLoggedPartnership', $websiteaccount->thirdparty->id, $logged_member->id);
270 $context->setEventMessage($error_msg,
'errors');
275 if ($logged_thirdparty->default_lang != $langs->defaultlang && !defined(
'WEBPORTAL_NOREQUIRETRAN')) {
276 if (!is_object($langs)) {
277 include_once DOL_DOCUMENT_ROOT .
'/core/class/translate.class.php';
279 $langs->setDefaultLang($logged_thirdparty->default_lang);
281 $langs->loadLangs(array(
'website',
'main'));
284 $context->logged_user = $logged_user;
285 $context->logged_thirdparty = $logged_thirdparty;
286 $context->logged_member = $logged_member;
287 $context->logged_partnership = $logged_partnership;
static getInstance()
Singleton method to create one instance of this object.
Class for SocieteAccount.
Class to manage translations.
Class to manage Dolibarr users.
Class for WebPortalMember.
Class for WebPortalPartnership.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
conf($dolibarr_main_document_root)
Load conf file (file must exists)
$context
@method int call_trigger(string $triggerName, User $user)
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.