38 global $db, $conf, $langs;
41 $entity = $entitytotest;
42 if (!empty($conf->multicompany->enabled) && !empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE)) $entity = 1;
46 if (!empty($usertotest))
48 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
49 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr usertotest=".$usertotest.
" passwordtotest=".preg_replace(
'/./',
'*', $passwordtotest).
" entitytotest=".$entitytotest);
52 $table = MAIN_DB_PREFIX.
"user";
53 $usernamecol1 =
'login';
54 $usernamecol2 =
'email';
55 $entitycol =
'entity';
57 $sql =
'SELECT rowid, login, entity, pass, pass_crypted, datestartvalidity, dateendvalidity';
58 $sql .=
' FROM '.$table;
59 $sql .=
' WHERE ('.$usernamecol1.
" = '".$db->escape($usertotest).
"'";
60 if (preg_match(
'/@/', $usertotest)) $sql .=
' OR '.$usernamecol2.
" = '".$db->escape($usertotest).
"'";
61 $sql .=
') AND '.$entitycol.
" IN (0,".($entity ? $entity : 1).
")";
62 $sql .=
' AND statut = 1';
66 $sql .=
' ORDER BY entity DESC';
71 $obj = $db->fetch_object(
$resql);
75 if ($obj->datestartvalidity && $db->jdate($obj->datestartvalidity) > $now) {
77 $langs->loadLangs(array(
'main',
'errors'));
78 $_SESSION[
"dol_loginmesg"] = $langs->trans(
"ErrorLoginDateValidity");
79 return '--bad-login-validity--';
81 if ($obj->dateendvalidity && $db->jdate($obj->dateendvalidity) <
dol_get_first_hour($now)) {
83 $langs->loadLangs(array(
'main',
'errors'));
84 $_SESSION[
"dol_loginmesg"] = $langs->trans(
"ErrorLoginDateValidity");
85 return '--bad-login-validity--';
88 $passclear = $obj->pass;
89 $passcrypted = $obj->pass_crypted;
90 $passtyped = $passwordtotest;
96 if (!empty($conf->global->DATABASE_PWD_ENCRYPTED)) $cryptType = $conf->global->DATABASE_PWD_ENCRYPTED;
99 if (!in_array($cryptType, array(
'auto'))) $cryptType =
'auto';
101 if ($cryptType ==
'auto')
106 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentification ok - ".$cryptType.
" of pass is ok");
113 if ((!$passcrypted || $passtyped)
114 && ($passclear && ($passtyped == $passclear)))
117 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentification ok - found pass in database");
124 $login = $obj->login;
127 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentication KO bad password for '".$usertotest.
"', cryptType=".$cryptType, LOG_NOTICE);
130 $langs->loadLangs(array(
'main',
'errors'));
132 $_SESSION[
"dol_loginmesg"] = $langs->trans(
"ErrorBadLoginPassword");
136 if ($passok && !empty($conf->multicompany->enabled))
140 if (!isset($mc)) $conf->multicompany->enabled =
false;
142 $ret = $mc->checkRight($obj->rowid, $entitytotest);
145 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentication KO entity '".$entitytotest.
"' not allowed for user '".$obj->rowid.
"'", LOG_NOTICE);
151 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentication KO user not found for '".$usertotest.
"'", LOG_NOTICE);
155 $langs->loadLangs(array(
'main',
'errors'));
157 $_SESSION[
"dol_loginmesg"] = $langs->trans(
"ErrorBadLoginPassword");
160 dol_syslog(
"functions_dolibarr::check_user_password_dolibarr Authentication KO db error for '".$usertotest.
"' error=".$db->lasterror(), LOG_ERR);
162 $_SESSION[
"dol_loginmesg"] = $db->lasterror();
dol_now($mode= 'auto')
Return date for now.
dol_verifyHash($chain, $hash, $type= '0')
Compute a hash and compare it to the given one For backward compatibility reasons, if the hash is not in the password_hash format, we will try to match against md5 and sha1md5 If constant MAIN_SECURITY_HASH_ALGO is defined, we use this function as hashing function.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
dol_get_first_hour($date, $gm= 'tzserver')
Return GMT time for first hour of a given GMT date (it removes hours, min and second part) ...
check_user_password_dolibarr($usertotest, $passwordtotest, $entitytotest=1)
Check validity of user/password/entity If test is ko, reason must be filled into $_SESSION["dol_login...
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.