The trigger USER_LOGIN* are deprecated. They are still working but you
should prefer use the hook afterLogin or afterLoginFailed instead.
This commit is contained in:
parent
55cb103ab0
commit
0a2bafaa6d
@ -43,8 +43,9 @@ Dolibarr better:
|
||||
- Hooks 'printLeftBlock' and 'formConfirm' are now compliant with hook development rules. They are
|
||||
"addreplace" hooks, so you must return content with "->resprints='mycontent'" and not with "return 'mycontent'"
|
||||
- All fields "fk_societe" were renamed into "fk_soc".
|
||||
- Method select_PriceBaseType and load_PriceBaseType were merged into selectPriceBaseType
|
||||
|
||||
- Method select_PriceBaseType and load_PriceBaseType were merged into selectPriceBaseType.
|
||||
- The trigger USER_LOGIN* are deprecated. They are still working but you should prefer use the
|
||||
hook afterLogin or afterLoginFailed instead.
|
||||
|
||||
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
|
||||
FIX [ bug #2855 ] Wrong translation key in localtax report page
|
||||
|
||||
@ -422,6 +422,15 @@ if (! defined('NOLOGIN'))
|
||||
$error++;
|
||||
}
|
||||
// End Call of triggers
|
||||
|
||||
// Hooks on failed login
|
||||
$action='';
|
||||
$hookmanager->initHooks(array('login'));
|
||||
$parameters=array('dol_authmode'=>$dol_authmode, 'dol_loginmesg'=>$_SESSION["dol_loginmesg"]);
|
||||
$reshook=$hookmanager->executeHooks('afterLoginFailed',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) $error++;
|
||||
|
||||
// Note: exit is done later
|
||||
}
|
||||
}
|
||||
|
||||
@ -479,6 +488,7 @@ if (! defined('NOLOGIN'))
|
||||
// We set a generic message if not defined inside function checkLoginPassEntity or subfunctions
|
||||
if (empty($_SESSION["dol_loginmesg"])) $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
|
||||
|
||||
// TODO We should use a hook afterLoginFailed here, not a trigger.
|
||||
// Call of triggers
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($db);
|
||||
@ -487,6 +497,15 @@ if (! defined('NOLOGIN'))
|
||||
$error++;
|
||||
}
|
||||
// End Call of triggers
|
||||
|
||||
// Hooks on failed login
|
||||
$action='';
|
||||
$hookmanager->initHooks(array('login'));
|
||||
$parameters=array('dol_authmode'=>$dol_authmode, 'dol_loginmesg'=>$_SESSION["dol_loginmesg"]);
|
||||
$reshook=$hookmanager->executeHooks('afterLoginFailed',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) $error++;
|
||||
|
||||
// Note: exit is done in next chapter
|
||||
}
|
||||
}
|
||||
|
||||
@ -521,7 +540,7 @@ if (! defined('NOLOGIN'))
|
||||
$_SESSION["dol_loginmesg"]=$user->error;
|
||||
}
|
||||
|
||||
// TODO We should use a hook here, not a trigger.
|
||||
// TODO We should use a hook afterLoginFailed here, not a trigger.
|
||||
// Call triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($db);
|
||||
@ -531,6 +550,13 @@ if (! defined('NOLOGIN'))
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
// Hooks on failed login
|
||||
$action='';
|
||||
$hookmanager->initHooks(array('login'));
|
||||
$parameters=array('dol_authmode'=>$dol_authmode, 'dol_loginmesg'=>$_SESSION["dol_loginmesg"]);
|
||||
$reshook=$hookmanager->executeHooks('afterLoginFailed',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) $error++;
|
||||
|
||||
header('Location: '.DOL_URL_ROOT.'/index.php');
|
||||
exit;
|
||||
}
|
||||
@ -574,6 +600,13 @@ if (! defined('NOLOGIN'))
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
// Hooks on failed login
|
||||
$action='';
|
||||
$hookmanager->initHooks(array('login'));
|
||||
$parameters=array('dol_authmode'=>$dol_authmode, 'dol_loginmesg'=>$_SESSION["dol_loginmesg"]);
|
||||
$reshook=$hookmanager->executeHooks('afterLoginFailed',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) $error++;
|
||||
|
||||
header('Location: '.DOL_URL_ROOT.'/index.php');
|
||||
exit;
|
||||
}
|
||||
@ -623,34 +656,12 @@ if (! defined('NOLOGIN'))
|
||||
|
||||
$user->update_last_login_date();
|
||||
|
||||
$user->trigger_mesg = 'TZ='.$_SESSION["dol_tz"].';TZString='.$_SESSION["dol_tz_string"].';Screen='.$_SESSION["dol_screenwidth"].'x'.$_SESSION["dol_screenheight"];
|
||||
|
||||
// TODO We should use a hook here, not a trigger
|
||||
// Call triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($db);
|
||||
$result=$interface->run_triggers('USER_LOGIN',$user,$user,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
if ($error)
|
||||
{
|
||||
$db->rollback();
|
||||
session_destroy();
|
||||
dol_print_error($db,'Error in some triggers on action USER_LOGIN');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->commit();
|
||||
}
|
||||
|
||||
// Create entity cookie, just used for login page
|
||||
// TODO Multicompany Move this into hook
|
||||
if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_COOKIE_ENABLED) && isset($_POST["entity"]))
|
||||
{
|
||||
dol_syslog("You are using a bugged version of a module using deprecated code instead that should be located into the hook 'afterLogin' instead", LOG_WARNING);
|
||||
include_once DOL_DOCUMENT_ROOT.'/core/class/cookie.class.php';
|
||||
|
||||
$entity = $_SESSION["dol_login"].'|'.$_POST["entity"];
|
||||
@ -666,12 +677,39 @@ if (! defined('NOLOGIN'))
|
||||
$entityCookie->_setCookie($entityCookieName, $entity, $ttl);
|
||||
}
|
||||
|
||||
|
||||
$loginfo = 'TZ='.$_SESSION["dol_tz"].';TZString='.$_SESSION["dol_tz_string"].';Screen='.$_SESSION["dol_screenwidth"].'x'.$_SESSION["dol_screenheight"];
|
||||
|
||||
$user->trigger_mesg = $loginfo;
|
||||
|
||||
// TODO We should use hook afterLogin here, not a trigger
|
||||
// Call triggers
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||
$interface=new Interfaces($db);
|
||||
$result=$interface->run_triggers('USER_LOGIN',$user,$user,$langs,$conf);
|
||||
if ($result < 0) {
|
||||
$error++;
|
||||
}
|
||||
// End call triggers
|
||||
|
||||
// Hooks on successfull login
|
||||
$action='';
|
||||
$hookmanager->initHooks(array('login'));
|
||||
$parameters=array('dol_authmode'=>$dol_authmode);
|
||||
$parameters=array('dol_authmode'=>$dol_authmode, 'dol_loginfo'=>$loginfo);
|
||||
$reshook=$hookmanager->executeHooks('afterLogin',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||
if ($reshook < 0) $error++;
|
||||
|
||||
if ($error)
|
||||
{
|
||||
$db->rollback();
|
||||
session_destroy();
|
||||
dol_print_error($db,'Error in some hooks afterLogin (or old trigger USER_LOGIN)');
|
||||
exit;
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->commit();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user