From b9f4d31f45790b30e371f6cd3184c3d4d48dc048 Mon Sep 17 00:00:00 2001 From: Arthur Monney Date: Tue, 5 Jul 2022 06:59:10 +0100 Subject: [PATCH 1/2] :bug: correction du bug sur l'assignation du role pendant la creation du compte --- app/Actions/Fortify/CreateNewUser.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Actions/Fortify/CreateNewUser.php b/app/Actions/Fortify/CreateNewUser.php index 92419947..2d54273c 100644 --- a/app/Actions/Fortify/CreateNewUser.php +++ b/app/Actions/Fortify/CreateNewUser.php @@ -42,12 +42,17 @@ public function create(array $input): User 'password' => $this->passwordRules(), ])->validate(); - return User::create([ + /** @var User $user */ + $user = User::create([ 'name' => $input['name'], 'email' => $input['email'], 'username' => Str::lower($input['username']), 'password' => Hash::make($input['password']), 'opt_in' => isset($input['opt_in']), ]); + + $user->assignRole('user'); + + return $user; } } From b9d401000da078dba207e420e198616717f4e2bb Mon Sep 17 00:00:00 2001 From: Arthur Monney Date: Tue, 5 Jul 2022 07:06:49 +0100 Subject: [PATCH 2/2] :sparkles: ajout d'une commande pour attribuer des roles aux utilisateurs --- app/Console/Commands/AssignUserRole.php | 24 ++++++++++++++++++++++++ app/Models/User.php | 5 +++++ 2 files changed, 29 insertions(+) create mode 100644 app/Console/Commands/AssignUserRole.php diff --git a/app/Console/Commands/AssignUserRole.php b/app/Console/Commands/AssignUserRole.php new file mode 100644 index 00000000..4fcaef7b --- /dev/null +++ b/app/Console/Commands/AssignUserRole.php @@ -0,0 +1,24 @@ +info('Assigning user role to all users...'); + + foreach (User::withoutRole()->get() as $user) { + $user->assignRole('user'); + } + + $this->info('All done!'); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index 2a19c420..f1ba62bb 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -259,6 +259,11 @@ public function scopeModerators(Builder $query): Builder }); } + public function scopeWithoutRole(Builder $query): Builder + { + return $query->whereDoesntHave('roles'); + } + public function scopeVerifiedUsers(Builder $query): Builder { return $query->whereNotNull('email_verified_at');