Conditions | 3 |
Paths | 1 |
Total Lines | 25 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | <?php |
||
11 | public function execute() |
||
12 | { |
||
13 | $guard = config('nova.guard') ?? config('auth.defaults.guard'); |
||
14 | |||
15 | Nova::resourcesIn(app_path('Nova')); |
||
16 | |||
17 | /** @var \BBSLab\NovaPermission\Contracts\Permission $permissionModel */ |
||
18 | $permissionModel = app(PermissionRegistrar::class)->getPermissionClass(); |
||
19 | |||
20 | collect(Nova::$resources)->filter(function ($resource) { |
||
21 | return $this->resourceIsNotExcluded($resource) && $this->resourceHasAbilities($resource); |
||
22 | })->each(function ($resource) use ($guard, $permissionModel) { |
||
23 | $group = class_basename($resource); |
||
24 | |||
25 | foreach ($resource::$permissionsForAbilities as $ability => $permission) { |
||
26 | $permissionModel->newQuery()->firstOrCreate([ |
||
27 | 'name' => $permission, |
||
28 | 'group' => $group, |
||
29 | 'guard_name' => $guard, |
||
30 | ]); |
||
31 | } |
||
32 | }); |
||
33 | |||
34 | $permissionModel->forgetCachedPermissions(); |
||
35 | } |
||
36 | |||
53 |