122 $claim_firstname =
getDolGlobalString(
'MAIN_AUTHENTICATION_OIDC_CLAIM_FIRSTNAME',
'given_name');
123 $claim_lastname =
getDolGlobalString(
'MAIN_AUTHENTICATION_OIDC_CLAIM_LASTNAME',
'family_name');
127 $sanitized_login = $login;
129 if ($badChars !==
'' && preg_match(
'/['.preg_quote($badChars,
'/').
']/', $login)) {
131 if (property_exists($userinfo,
'preferred_username') && !empty($userinfo->preferred_username)) {
132 $preferred = $userinfo->preferred_username;
133 if (!preg_match(
'/['.preg_quote($badChars,
'/').
']/', $preferred)) {
134 $sanitized_login = $preferred;
138 if (preg_match(
'/['.preg_quote($badChars,
'/').
']/', $sanitized_login) && strpos($sanitized_login,
'@') !==
false) {
139 $sanitized_login = substr($sanitized_login, 0, strpos($sanitized_login,
'@'));
142 $sanitized_login = (
string) preg_replace(
'/['.preg_quote($badChars,
'/').
']/',
'.', $sanitized_login);
146 $newuser->login = $sanitized_login;
147 $newuser->entity = $entity;
148 $newuser->statut = 1;
149 $newuser->status = 1;
151 if (property_exists($userinfo, $claim_email)) {
152 $newuser->email = $userinfo->$claim_email;
154 if (property_exists($userinfo, $claim_firstname)) {
155 $newuser->firstname = $userinfo->$claim_firstname;
157 if (property_exists($userinfo, $claim_lastname)) {
158 $newuser->lastname = $userinfo->$claim_lastname;
161 if (empty($newuser->lastname)) {
162 $newuser->lastname = $login;
169 $creator_id =
getDolGlobalInt(
'MAIN_AUTHENTICATION_OIDC_DEFAULT_CREATOR', 1);
170 if ($creator_id <= 0) {
174 $result_fetch = $adminuser->fetch($creator_id);
175 if ($result_fetch <= 0 || empty($adminuser->admin) || $adminuser->statut != 1) {
176 dol_syslog(
"openid_connect_create_user::Error: configured creator user ID=".$creator_id.
" is not a valid active admin", LOG_ERR);
182 $result_create = $newuser->create($adminuser);
183 if ($result_create < 0) {
185 dol_syslog(
"openid_connect_create_user::Error creating user: ".$newuser->error, LOG_ERR);
186 return $result_create;
190 $default_group =
getDolGlobalInt(
'MAIN_AUTHENTICATION_OIDC_DEFAULT_GROUP');
191 if ($default_group > 0) {
192 $res_group = $newuser->SetInGroup($default_group, $entity);
193 if ($res_group < 0) {
194 dol_syslog(
"openid_connect_create_user::Warning: Error adding user to group ".$default_group.
": ".$newuser->error, LOG_WARNING);
201 dol_syslog(
"openid_connect_create_user::User created id=".$result_create.
" login=".$sanitized_login);
203 return $sanitized_login;
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.