1 | <?php |
||
2 | |||
3 | namespace Insenseanalytics\LaravelNovaPermission; |
||
4 | |||
5 | use Laravel\Nova\Http\Requests\NovaRequest; |
||
6 | use Laravel\Nova\Nova; |
||
7 | use Laravel\Nova\Fields\ID; |
||
8 | use Illuminate\Http\Request; |
||
9 | use Laravel\Nova\Fields\Text; |
||
10 | use Illuminate\Validation\Rule; |
||
11 | use Laravel\Nova\Fields\Select; |
||
12 | use Laravel\Nova\Fields\DateTime; |
||
13 | use Laravel\Nova\Fields\MorphToMany; |
||
14 | use Laravel\Nova\Fields\BelongsToMany; |
||
15 | use Spatie\Permission\PermissionRegistrar; |
||
16 | |||
17 | trait PermissionResourceTrait |
||
18 | { |
||
19 | public static function getModel() |
||
20 | { |
||
21 | return app(PermissionRegistrar::class)->getPermissionClass(); |
||
22 | } |
||
23 | |||
24 | /** |
||
25 | * Get the fields displayed by the resource. |
||
26 | * |
||
27 | * @param \Illuminate\Http\Request $request |
||
28 | * |
||
29 | * @return array |
||
30 | */ |
||
31 | public function fields(Request $request) |
||
0 ignored issues
–
show
|
|||
32 | { |
||
33 | $guardOptions = collect(config('auth.guards'))->mapWithKeys(function ($value, $key) { |
||
34 | return [$key => $key]; |
||
35 | }); |
||
36 | |||
37 | $userResource = Nova::resourceForModel(getModelForGuard($this->guard_name)); |
||
38 | |||
39 | $roleResource = Nova::resourceForModel(app(PermissionRegistrar::class)->getRoleClass()); |
||
40 | |||
41 | return [ |
||
42 | ID::make()->sortable(), |
||
43 | |||
44 | Text::make(__('laravel-nova-permission::permissions.name'), 'name') |
||
45 | ->rules(['required', 'string', 'max:255']) |
||
46 | ->creationRules('unique:' . config('permission.table_names.permissions')) |
||
47 | ->updateRules('unique:' . config('permission.table_names.permissions') . ',name,{{resourceId}}'), |
||
48 | |||
49 | Text::make(__('laravel-nova-permission::permissions.display_name'),function (){ |
||
50 | return __('laravel-nova-permission::permissions.display_names.'.$this->name); |
||
51 | })->canSee(function (){ |
||
52 | return is_array(__('laravel-nova-permission::permissions.display_names')); |
||
53 | }), |
||
54 | |||
55 | Select::make(__('laravel-nova-permission::permissions.guard_name'), 'guard_name') |
||
56 | ->options($guardOptions->toArray()) |
||
57 | ->rules(['required', Rule::in($guardOptions)]), |
||
58 | |||
59 | DateTime::make(__('laravel-nova-permission::permissions.created_at'), 'created_at')->exceptOnForms(), |
||
60 | |||
61 | DateTime::make(__('laravel-nova-permission::permissions.updated_at'), 'updated_at')->exceptOnForms(), |
||
62 | |||
63 | BelongsToMany::make($roleResource::label(), 'roles', $roleResource)->searchable(), |
||
64 | |||
65 | MorphToMany::make($userResource::label(), 'users', $userResource)->searchable(), |
||
66 | ]; |
||
67 | } |
||
68 | } |
||
69 |
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.