@@ 9-48 (lines=40) @@ | ||
6 | use Illuminate\Console\Command; |
|
7 | use Spatie\Permission\Contracts\Role as RoleContract; |
|
8 | ||
9 | class AssignRole extends Command |
|
10 | { |
|
11 | protected $signature = 'permission:assign-user |
|
12 | {user : User ID} |
|
13 | {name : The name of the role} |
|
14 | {guard? : The name of the guard}'; |
|
15 | ||
16 | protected $description = 'Assign a role'; |
|
17 | ||
18 | /** |
|
19 | * User model. |
|
20 | * |
|
21 | * @var User $user |
|
22 | */ |
|
23 | protected $user; |
|
24 | ||
25 | /** |
|
26 | * Create a new command instance. |
|
27 | * |
|
28 | * @param User |
|
29 | * @return void |
|
30 | */ |
|
31 | public function __construct(User $user) |
|
32 | { |
|
33 | parent::__construct(); |
|
34 | ||
35 | $this->user = $user; |
|
36 | } |
|
37 | ||
38 | public function handle() |
|
39 | { |
|
40 | $roleClass = app(RoleContract::class); |
|
41 | ||
42 | $user = $this->user->find($this->argument('user')); |
|
43 | $role = $roleClass::findByName($this->argument('name'), $this->argument('guard')); |
|
44 | ||
45 | $user->assignRole($role->name); |
|
46 | $this->info("Role `{$role->name}` assigned to `{$user->name}` (ID:{$user->name}) created"); |
|
47 | } |
|
48 | } |
|
49 |
@@ 9-48 (lines=40) @@ | ||
6 | use Illuminate\Console\Command; |
|
7 | use Spatie\Permission\Contracts\Permission as PermissionContract; |
|
8 | ||
9 | class GivePermissionUser extends Command |
|
10 | { |
|
11 | protected $signature = 'permission:give-user |
|
12 | {user : User ID} |
|
13 | {name : The name of the permission} |
|
14 | {guard? : The name of the guard}'; |
|
15 | ||
16 | protected $description = 'Give user a permission'; |
|
17 | ||
18 | /** |
|
19 | * User model. |
|
20 | * |
|
21 | * @var User $user |
|
22 | */ |
|
23 | protected $user; |
|
24 | ||
25 | /** |
|
26 | * Create a new command instance. |
|
27 | * |
|
28 | * @param User $user |
|
29 | * @return void |
|
30 | */ |
|
31 | public function __construct(User $user) |
|
32 | { |
|
33 | parent::__construct(); |
|
34 | ||
35 | $this->user = $user; |
|
36 | } |
|
37 | ||
38 | public function handle() |
|
39 | { |
|
40 | $permissionClass = app(PermissionContract::class); |
|
41 | ||
42 | $user = $this->user->find($this->argument('user')); |
|
43 | $permission = $permissionClass::findByName($this->argument('name'), $this->argument('guard')); |
|
44 | ||
45 | $user->givePermissionTo($permission->name); |
|
46 | $this->info("Permission `{$permission->name}` given to `{$user->name}` (ID:{$user->name})"); |
|
47 | } |
|
48 | } |
|
49 |