Skip to content

Commit 721b361

Browse files
committed
feat: Add type parameter to artisan commands
1 parent 124ab91 commit 721b361

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,11 @@ php artisan policy:add writer,articles,edit
334334
Adds a role for a user:
335335

336336
```bash
337-
php artisan role:assign eve writer
337+
php artisan role:assign eve writer --type=g2
338338
```
339339

340+
You can specify the type of the role assignment by using the --type option.
341+
340342
### Using cache
341343

342344
Authorization rules are cached to speed up performance. The default is off.

src/Commands/RoleAssign.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ class RoleAssign extends Command
1717
*/
1818
protected $signature = 'role:assign
1919
{user : the identifier of user}
20-
{role : the name of role}';
20+
{role : the name of role}
21+
{--type= : the type of role}';
2122

2223
/**
2324
* The console command description.
@@ -35,8 +36,9 @@ public function handle()
3536
{
3637
$user = $this->argument('user');
3738
$role = $this->argument('role');
39+
$type = $this->option('type') ?: 'g';
3840

39-
$ret = Enforcer::addRoleForUser($user, $role);
41+
$ret = Enforcer::addNamedGroupingPolicy($type, $user, $role);
4042
if ($ret) {
4143
$this->info('Added `'.$role.'` role to `'.$user.'` successfully');
4244
} else {

tests/Commands/RoleAssignTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ class RoleAssignTest extends TestCase
1313

1414
public function testHandle()
1515
{
16-
$this->assertFalse(Enforcer::hasRoleForUser('eve', 'writer'));
17-
$exitCode = Artisan::call('role:assign', ['user' => 'eve', 'role' => 'writer']);
16+
$this->assertFalse(Enforcer::hasNamedGroupingPolicy('g', 'eve', 'writer'));
17+
$exitCode = Artisan::call('role:assign', ['user' => 'eve', 'role' => 'writer', '--type' => 'g']);
1818
$this->assertTrue(0 === $exitCode);
19-
$exitCode = Artisan::call('role:assign', ['user' => 'eve', 'role' => 'writer']);
19+
$exitCode = Artisan::call('role:assign', ['user' => 'eve', 'role' => 'writer', '--type' => 'g']);
2020
$this->assertFalse(0 === $exitCode);
21-
$this->assertTrue(Enforcer::hasRoleForUser('eve', 'writer'));
21+
$this->assertTrue(Enforcer::hasNamedGroupingPolicy('g', 'eve', 'writer'));
2222
}
2323
}

0 commit comments

Comments
 (0)