Adds the user name as a separate field
This commit is contained in:
@@ -91,31 +91,27 @@ private function processCallback(): RedirectResponse
|
||||
Log::info('[Azure SSO] Azure user resolved', [
|
||||
'azure_id' => $azureUser->getId(),
|
||||
'email' => $azureUser->getEmail(),
|
||||
'mail' => Arr::get($azureUser->user, 'mail'),
|
||||
'name' => $azureUser->getName(),
|
||||
'job_title' => Arr::get($azureUser->user, 'jobTitle'),
|
||||
'department' => Arr::get($azureUser->user, 'department'),
|
||||
'company' => Arr::get($azureUser->user, 'companyName'),
|
||||
]);
|
||||
|
||||
Log::info('[Azure SSO] Full Azure user dump', [
|
||||
'raw_user' => $azureUser->user,
|
||||
'token' => substr((string) $azureUser->token, 0, 12).'…',
|
||||
'refresh_token' => $azureUser->refreshToken ? 'present' : 'absent',
|
||||
'expires_in' => $azureUser->expiresIn,
|
||||
'avatar' => $azureUser->getAvatar(),
|
||||
'nickname' => $azureUser->getNickname(),
|
||||
]);
|
||||
Log::info('[Azure SSO] Full Azure user dump', json_decode(json_encode($azureUser), true));
|
||||
|
||||
$user = User::query()->updateOrCreate(
|
||||
['email' => $azureUser->getEmail()],
|
||||
['username' => $azureUser->getEmail()],
|
||||
[
|
||||
'name' => $azureUser->getName(),
|
||||
'email' => $azureUser->user['mail'] ?? $azureUser->getEmail(),
|
||||
'azure_id' => $azureUser->getId(),
|
||||
'photo' => $azureUser->getAvatar(),
|
||||
'job_title' => Arr::get($azureUser->user, 'jobTitle'),
|
||||
'department' => Arr::get($azureUser->user, 'department'),
|
||||
'company_name' => Arr::get($azureUser->user, 'companyName'),
|
||||
'phone' => Arr::get($azureUser->user, 'mobilePhone', Arr::get($azureUser->user, 'businessPhones.0')),
|
||||
'email_verified_at' => now(),
|
||||
]
|
||||
);
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ final class User extends Authenticatable
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'username',
|
||||
'email',
|
||||
'password',
|
||||
'azure_id',
|
||||
|
||||
@@ -36,7 +36,7 @@ final class User extends Resource
|
||||
* @var array
|
||||
*/
|
||||
public static $search = [
|
||||
'id', 'name', 'email', 'department', 'job_title',
|
||||
'id', 'name', 'username', 'email', 'department', 'job_title',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -59,12 +59,19 @@ public function fields(NovaRequest $request): array
|
||||
->rules('required', 'max:255')
|
||||
->help('The user\'s full name, imported from Azure AD when they first log in.'),
|
||||
|
||||
Text::make('Username')
|
||||
->sortable()
|
||||
->rules('required', 'max:255')
|
||||
->creationRules('unique:users,username')
|
||||
->updateRules('unique:users,username,{{resourceId}}')
|
||||
->help('The user\'s Azure AD principal name (UPN), used to identify them when logging in via SSO.'),
|
||||
|
||||
Text::make('Email')
|
||||
->sortable()
|
||||
->rules('required', 'email', 'max:254')
|
||||
->creationRules('unique:users,email')
|
||||
->updateRules('unique:users,email,{{resourceId}}')
|
||||
->help('The user\'s email address, used to identify them when logging in via Azure AD.'),
|
||||
->help('The user\'s email address.'),
|
||||
|
||||
Text::make('Azure ID', 'azure_id')
|
||||
->onlyOnDetail()
|
||||
|
||||
Reference in New Issue
Block a user