Skip to content

Commit 2ddca99

Browse files
authored
Merge pull request #51 from laravelcm/fix-user-with-no-role
Fix user with no role
2 parents c1c0ad2 + b9d4010 commit 2ddca99

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

app/Actions/Fortify/CreateNewUser.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,17 @@ public function create(array $input): User
4242
'password' => $this->passwordRules(),
4343
])->validate();
4444

45-
return User::create([
45+
/** @var User $user */
46+
$user = User::create([
4647
'name' => $input['name'],
4748
'email' => $input['email'],
4849
'username' => Str::lower($input['username']),
4950
'password' => Hash::make($input['password']),
5051
'opt_in' => isset($input['opt_in']),
5152
]);
53+
54+
$user->assignRole('user');
55+
56+
return $user;
5257
}
5358
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
namespace App\Console\Commands;
4+
5+
use App\Models\User;
6+
use Illuminate\Console\Command;
7+
8+
class AssignUserRole extends Command
9+
{
10+
protected $signature = 'lcm:assign-user-role';
11+
12+
protected $description = 'Assign user role to all users without any role.';
13+
14+
public function handle(): void
15+
{
16+
$this->info('Assigning user role to all users...');
17+
18+
foreach (User::withoutRole()->get() as $user) {
19+
$user->assignRole('user');
20+
}
21+
22+
$this->info('All done!');
23+
}
24+
}

app/Models/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ public function scopeModerators(Builder $query): Builder
259259
});
260260
}
261261

262+
public function scopeWithoutRole(Builder $query): Builder
263+
{
264+
return $query->whereDoesntHave('roles');
265+
}
266+
262267
public function scopeVerifiedUsers(Builder $query): Builder
263268
{
264269
return $query->whereNotNull('email_verified_at');

0 commit comments

Comments
 (0)