From 4f9e36f970bb5e53b0144ab32ef42f6323cd8660 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Thu, 23 Nov 2023 16:01:09 +0500 Subject: [PATCH] create resource for roles & permisissions --- app/Models/System/Roles/Permission.php | 9 ++ app/Models/System/Roles/Role.php | 18 +++ .../Resources/System/Roles/Permission.php | 92 +++++++++++++++ app/Nova/Resources/System/Roles/Role.php | 109 ++++++++++++++++++ config/permission.php | 4 +- 5 files changed, 230 insertions(+), 2 deletions(-) create mode 100644 app/Models/System/Roles/Permission.php create mode 100644 app/Models/System/Roles/Role.php create mode 100644 app/Nova/Resources/System/Roles/Permission.php create mode 100644 app/Nova/Resources/System/Roles/Role.php diff --git a/app/Models/System/Roles/Permission.php b/app/Models/System/Roles/Permission.php new file mode 100644 index 0000000..1a1b1fc --- /dev/null +++ b/app/Models/System/Roles/Permission.php @@ -0,0 +1,9 @@ + + */ + public $translatable = ['display_name']; +} diff --git a/app/Nova/Resources/System/Roles/Permission.php b/app/Nova/Resources/System/Roles/Permission.php new file mode 100644 index 0000000..6bc6e4f --- /dev/null +++ b/app/Nova/Resources/System/Roles/Permission.php @@ -0,0 +1,92 @@ + + */ + public static $model = \App\Models\System\Roles\Permission::class; + + /** + * The single value that should be used to represent the resource when being displayed. + * + * @var string + */ + public static $title = 'name'; + + /** + * The columns that should be searched. + * + * @var array + */ + public static $search = [ + 'id', 'name', + ]; + + /** + * Get the fields displayed by the resource. + * + * @return array + */ + public function fields(NovaRequest $request) + { + return [ + ID::make()->sortable(), + + Text::make(__('Name'), 'name') + ->rules('required', 'string', 'max:255', 'unique:permissions,name'), + + Text::make(__('Guard name'), 'guard_name') + ->rules('required', 'string', 'max:255'), + ]; + } + + /** + * Get the cards available for the request. + * + * @return array + */ + public function cards(NovaRequest $request) + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + */ + public function filters(NovaRequest $request) + { + return []; + } + + /** + * Get the lenses available for the resource. + * + * @return array + */ + public function lenses(NovaRequest $request) + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @return array + */ + public function actions(NovaRequest $request) + { + return []; + } +} diff --git a/app/Nova/Resources/System/Roles/Role.php b/app/Nova/Resources/System/Roles/Role.php new file mode 100644 index 0000000..dee2cdd --- /dev/null +++ b/app/Nova/Resources/System/Roles/Role.php @@ -0,0 +1,109 @@ + + */ + public static $model = \App\Models\System\Roles\Role::class; + + /** + * The single value that should be used to represent the resource when being displayed. + * + * @var string + */ + public static $title = 'name'; + + /** + * The columns that should be searched. + * + * @var array + */ + public static $search = [ + 'id', 'name', + ]; + + /** + * Get the displayable label of the resource. + */ + public static function label(): string + { + return __('Roles'); + } + + /** + * Get the displayable singular label of the resource. + */ + public static function singularLabel(): string + { + return __('Role'); + } + + /** + * Get the fields displayed by the resource. + * + * @return array + */ + public function fields(NovaRequest $request): array + { + return [ + ID::make()->sortable(), + + Text::make(__('Name'), 'name') + ->rules('required', 'string', 'max:255', 'unique:roles,name'), + + Text::make(__('Guard name'), 'guard_name') + ->rules('required', 'string', 'max:255') + ->translatable(), + ]; + } + + /** + * Get the cards available for the request. + * + * @return array + */ + public function cards(NovaRequest $request): array + { + return []; + } + + /** + * Get the filters available for the resource. + * + * @return array + */ + public function filters(NovaRequest $request): array + { + return []; + } + + /** + * Get the lenses available for the resource. + * + * @return array + */ + public function lenses(NovaRequest $request): array + { + return []; + } + + /** + * Get the actions available for the resource. + * + * @return array + */ + public function actions(NovaRequest $request): array + { + return []; + } +} diff --git a/config/permission.php b/config/permission.php index 2a520f3..7e78f72 100644 --- a/config/permission.php +++ b/config/permission.php @@ -13,7 +13,7 @@ return [ * `Spatie\Permission\Contracts\Permission` contract. */ - 'permission' => Spatie\Permission\Models\Permission::class, + 'permission' => \App\Models\System\Roles\Permission::class, /* * When using the "HasRoles" trait from this package, we need to know which @@ -24,7 +24,7 @@ return [ * `Spatie\Permission\Contracts\Role` contract. */ - 'role' => Spatie\Permission\Models\Role::class, + 'role' => \App\Models\System\Roles\Role::class, ],