38 global $db, $conf, $langs;
39 global $dolibarr_main_authentication, $dolibarr_auto_user;
41 $fuser =
new User($db);
43 if (!$error && ($authentication[
'dolibarrkey'] != $conf->global->WEBSERVICES_KEY)) {
45 $errorcode =
'BAD_VALUE_FOR_SECURITY_KEY';
46 $errorlabel =
'Value provided into dolibarrkey entry field does not match security key defined in Webservice module setup';
49 if (!$error && !empty($authentication[
'entity']) && !is_numeric($authentication[
'entity'])) {
51 $errorcode =
'BAD_PARAMETERS';
52 $errorlabel =
"The entity parameter must be empty (or filled with numeric id of instance if multicompany module is used).";
56 $result = $fuser->fetch(
'', $authentication[
'login'],
'', 0);
59 $errorcode =
'ERROR_FETCH_USER';
60 $errorlabel =
'A technical error occurred during fetch of user';
61 } elseif ($result == 0) {
63 $errorcode =
'BAD_CREDENTIALS';
64 $errorlabel =
'Bad value for login or password';
67 if (!$error && $fuser->statut == 0) {
69 $errorcode =
'ERROR_USER_DISABLED';
70 $errorlabel =
'This user has been locked or disabled';
78 if (empty($dolibarr_main_authentication)) {
79 $dolibarr_main_authentication =
'http,dolibarr';
82 if ($dolibarr_main_authentication ==
'forceuser' && empty($dolibarr_auto_user)) {
83 $dolibarr_auto_user =
'auto';
86 $authmode = explode(
',', $dolibarr_main_authentication);
88 include_once DOL_DOCUMENT_ROOT.
'/core/lib/security2.lib.php';
89 $login =
checkLoginPassEntity($authentication[
'login'], $authentication[
'password'], $authentication[
'entity'], $authmode,
'ws');
90 if ($login ===
'--bad-login-validity--') {
96 $errorcode =
'BAD_CREDENTIALS';
97 $errorlabel =
'Bad value for login or password';
checkLoginPassEntity($usertotest, $passwordtotest, $entitytotest, $authmode, $context='')
Return a login if login/pass was successful.
check_authentication($authentication, &$error, &$errorcode, &$errorlabel)
Check authentication array and set error, errorcode, errorlabel.