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; } } 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');