Skip to content

Commit 6759ef6

Browse files
authored
Merge pull request #7 from flixtechs-labs/facade
feat: added the ability get permission names for a given model
2 parents ef2985d + b571198 commit 6759ef6

File tree

4 files changed

+24
-37
lines changed

4 files changed

+24
-37
lines changed

composer.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@
1818
"require": {
1919
"php": "^8.1",
2020
"illuminate/contracts": "^9.0",
21-
"spatie/laravel-package-tools": "^1.9.2",
22-
"spatie/laravel-permission": "^5.5",
23-
"symfony/filesystem": "^6.1"
21+
"spatie/laravel-package-tools": "^1.12.1",
22+
"spatie/laravel-permission": "^5.5.5",
23+
"symfony/filesystem": "^6.1.3"
2424
},
2525
"require-dev": {
26-
"laravel/pint": "^1.0",
27-
"nunomaduro/collision": "^6.2",
28-
"nunomaduro/larastan": "^2.0.1",
29-
"orchestra/testbench": "^7.6",
30-
"pestphp/pest": "^1.21",
31-
"pestphp/pest-plugin-laravel": "^1.1",
26+
"laravel/pint": "^1.1.1",
27+
"nunomaduro/collision": "^6.2.1",
28+
"nunomaduro/larastan": "^2.1.12",
29+
"orchestra/testbench": "^7.7",
30+
"pestphp/pest": "^1.21.3",
31+
"pestphp/pest-plugin-laravel": "^1.2",
3232
"phpstan/extension-installer": "^1.1",
3333
"phpstan/phpstan-deprecation-rules": "^1.0",
34-
"phpstan/phpstan-phpunit": "^1.0",
35-
"phpunit/phpunit": "^9.5",
34+
"phpstan/phpstan-phpunit": "^1.1.1",
35+
"phpunit/phpunit": "^9.5.23",
3636
"roave/security-advisories": "dev-latest"
3737
},
3838
"autoload": {
@@ -69,7 +69,7 @@
6969
"FlixtechsLabs\\LaravelAuthorizer\\LaravelAuthorizerServiceProvider"
7070
],
7171
"aliases": {
72-
"LaravelAuthorizer": "FlixtechsLabs\\LaravelAuthorizer\\Facades\\LaravelAuthorizer"
72+
"Authorizer": "FlixtechsLabs\\LaravelAuthorizer\\Facades\\Authorizer"
7373
}
7474
}
7575
},

src/Commands/GeneratePermissionsCommand.php

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
namespace FlixtechsLabs\LaravelAuthorizer\Commands;
44

55
use FlixtechsLabs\LaravelAuthorizer\Commands\Traits\LocatesModels;
6+
use FlixtechsLabs\LaravelAuthorizer\Facades\Authorizer;
67
use Illuminate\Console\Command;
7-
use Illuminate\Support\Str;
88
use Spatie\Permission\Models\Permission;
99

1010
class GeneratePermissionsCommand extends Command
@@ -67,33 +67,12 @@ protected function generatePermissionsForAllModels(): void
6767
*/
6868
public function generatePermissions(string $model): void
6969
{
70-
$permissions = config('authorizer.permissions');
70+
$permissions = Authorizer::getPermissionsFor($model);
7171

7272
collect($permissions)->each(
73-
fn (string $permission) => $this->generatePermission(
74-
$model,
73+
fn (string $permission) => Permission::findOrCreate(
7574
$permission
7675
)
7776
);
7877
}
79-
80-
/**
81-
* Generate a permission for a given model.
82-
*
83-
* @param string $model
84-
* @param string $permission
85-
* @return mixed
86-
*/
87-
public function generatePermission(string $model, string $permission): mixed
88-
{
89-
if (Str::contains($permission, 'all')) {
90-
return Permission::findOrCreate(
91-
$permission.' '.Str::snake(Str::plural(Str::lower($model)))
92-
);
93-
}
94-
95-
return Permission::findOrCreate(
96-
$permission.' '.Str::snake(Str::lower($model))
97-
);
98-
}
9978
}

src/Facades/LaravelAuthorizer.php renamed to src/Facades/Authorizer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
/**
88
* @see \FlixtechsLabs\LaravelAuthorizer\LaravelAuthorizer
99
*/
10-
class LaravelAuthorizer extends Facade
10+
class Authorizer extends Facade
1111
{
1212
protected static function getFacadeAccessor()
1313
{

src/LaravelAuthorizer.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
namespace FlixtechsLabs\LaravelAuthorizer;
44

5+
use Illuminate\Support\Str;
6+
57
class LaravelAuthorizer
68
{
9+
public function getPermissionsFor(string $model): array
10+
{
11+
return array_map(static function (string $permission) use ($model) {
12+
return $permission.' '.(Str::contains($permission, 'all') ? Str::of($model)->snake()->plural()->lower() : Str::of($model)->snake()->lower());
13+
}, config('authorizer.permissions'));
14+
}
715
}

0 commit comments

Comments
 (0)