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
|
- 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'"
|
"addreplace" hooks, so you must return content with "->resprints='mycontent'" and not with "return 'mycontent'"
|
||||||
- All fields "fk_societe" were renamed into "fk_soc".
|
- 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 *****
|
***** ChangeLog for 3.7.2 compared to 3.7.1 *****
|
||||||
FIX [ bug #2855 ] Wrong translation key in localtax report page
|
FIX [ bug #2855 ] Wrong translation key in localtax report page
|
||||||
|
|||||||
@ -422,6 +422,15 @@ if (! defined('NOLOGIN'))
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
// End Call of triggers
|
// 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
|
// We set a generic message if not defined inside function checkLoginPassEntity or subfunctions
|
||||||
if (empty($_SESSION["dol_loginmesg"])) $_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
|
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
|
// Call of triggers
|
||||||
include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
@ -487,6 +497,15 @@ if (! defined('NOLOGIN'))
|
|||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
// End Call of triggers
|
// 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;
|
$_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
|
// Call triggers
|
||||||
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php';
|
||||||
$interface=new Interfaces($db);
|
$interface=new Interfaces($db);
|
||||||
@ -531,6 +550,13 @@ if (! defined('NOLOGIN'))
|
|||||||
}
|
}
|
||||||
// End call triggers
|
// 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');
|
header('Location: '.DOL_URL_ROOT.'/index.php');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -574,6 +600,13 @@ if (! defined('NOLOGIN'))
|
|||||||
}
|
}
|
||||||
// End call triggers
|
// 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');
|
header('Location: '.DOL_URL_ROOT.'/index.php');
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
@ -623,34 +656,12 @@ if (! defined('NOLOGIN'))
|
|||||||
|
|
||||||
$user->update_last_login_date();
|
$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
|
// Create entity cookie, just used for login page
|
||||||
// TODO Multicompany Move this into hook
|
// TODO Multicompany Move this into hook
|
||||||
if (! empty($conf->multicompany->enabled) && ! empty($conf->global->MULTICOMPANY_COOKIE_ENABLED) && isset($_POST["entity"]))
|
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';
|
include_once DOL_DOCUMENT_ROOT.'/core/class/cookie.class.php';
|
||||||
|
|
||||||
$entity = $_SESSION["dol_login"].'|'.$_POST["entity"];
|
$entity = $_SESSION["dol_login"].'|'.$_POST["entity"];
|
||||||
@ -666,12 +677,39 @@ if (! defined('NOLOGIN'))
|
|||||||
$entityCookie->_setCookie($entityCookieName, $entity, $ttl);
|
$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
|
// Hooks on successfull login
|
||||||
$action='';
|
$action='';
|
||||||
$hookmanager->initHooks(array('login'));
|
$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
|
$reshook=$hookmanager->executeHooks('afterLogin',$parameters,$user,$action); // Note that $action and $object may have been modified by some hooks
|
||||||
if ($reshook < 0) $error++;
|
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