269 lines
8.3 KiB
PHP
269 lines
8.3 KiB
PHP
<?php
|
||
|
||
return [
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Shield Resource
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Here you may configure the built-in role management resource. You can
|
||
| customize the URL, choose whether to show model paths, group it under
|
||
| a cluster, and decide which permission tabs to display.
|
||
|
|
||
*/
|
||
|
||
'shield_resource' => [
|
||
'slug' => 'shield/roles',
|
||
'show_model_path' => true,
|
||
'cluster' => null,
|
||
'tabs' => [
|
||
'pages' => true,
|
||
'widgets' => true,
|
||
'resources' => true,
|
||
'custom_permissions' => false,
|
||
],
|
||
],
|
||
|
||
'user_resource' => [
|
||
'enabled' => true,
|
||
'slug' => 'shield/users',
|
||
'show_model_path' => true,
|
||
'cluster' => null,
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Multi-Tenancy
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| When your application supports teams, Shield will automatically detect
|
||
| and configure the tenant model during setup. This enables tenant-scoped
|
||
| roles and permissions throughout your application.
|
||
|
|
||
*/
|
||
|
||
'tenant_model' => null,
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| User Model
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| This value contains the class name of your user model. This model will
|
||
| be used for role assignments and must implement the HasRoles trait
|
||
| provided by the Spatie\Permission package.
|
||
|
|
||
*/
|
||
|
||
'auth_provider_model' => 'App\\Models\\User',
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Super Admin
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Here you may define a super admin that has unrestricted access to your
|
||
| application. You can choose to implement this via Laravel's gate system
|
||
| or as a traditional role with all permissions explicitly assigned.
|
||
|
|
||
*/
|
||
|
||
'super_admin' => [
|
||
'enabled' => true,
|
||
'name' => 'super_admin',
|
||
'define_via_gate' => false,
|
||
'intercept_gate' => 'before',
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Panel User
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| When enabled, Shield will create a basic panel user role that can be
|
||
| assigned to users who should have access to your Filament panels but
|
||
| don't need any specific permissions beyond basic authentication.
|
||
|
|
||
*/
|
||
|
||
'panel_user' => [
|
||
'enabled' => true,
|
||
'name' => 'panel_user',
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Permission Builder
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| You can customize how permission keys are generated to match your
|
||
| preferred naming convention and organizational standards. Shield uses
|
||
| these settings when creating permission names from your resources.
|
||
|
|
||
| Supported formats: snake, kebab, pascal, camel, upper_snake, lower_snake
|
||
|
|
||
*/
|
||
|
||
'permissions' => [
|
||
'separator' => ':',
|
||
'case' => 'pascal',
|
||
'generate' => true,
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Policies
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Shield can automatically generate Laravel policies for your resources.
|
||
| When merge is enabled, the methods below will be combined with any
|
||
| resource-specific methods you define in the resources section.
|
||
|
|
||
*/
|
||
|
||
'policies' => [
|
||
'path' => app_path('Policies'),
|
||
'merge' => true,
|
||
'generate' => true,
|
||
'methods' => [
|
||
'viewAny', 'view', 'create', 'update', 'delete', 'restore',
|
||
'forceDelete', 'forceDeleteAny', 'restoreAny', 'replicate', 'reorder',
|
||
],
|
||
'single_parameter_methods' => [
|
||
'viewAny',
|
||
'create',
|
||
'deleteAny',
|
||
'forceDeleteAny',
|
||
'restoreAny',
|
||
'reorder',
|
||
],
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Localization
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Shield supports multiple languages out of the box. When enabled, you
|
||
| can provide translated labels for permissions to create a more
|
||
| localized experience for your international users.
|
||
|
|
||
*/
|
||
|
||
'localization' => [
|
||
'enabled' => false,
|
||
'key' => 'filament-shield::filament-shield',
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Resources
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Here you can fine-tune permissions for specific Filament resources.
|
||
| Use the 'manage' array to override the default policy methods for
|
||
| individual resources, giving you granular control over permissions.
|
||
|
|
||
*/
|
||
|
||
'resources' => [
|
||
'subject' => 'model',
|
||
'manage' => [
|
||
\BezhanSalleh\FilamentShield\Resources\Roles\RoleResource::class => [
|
||
'viewAny',
|
||
'view',
|
||
'create',
|
||
'update',
|
||
'delete',
|
||
],
|
||
],
|
||
'exclude' => [
|
||
// TomatoPHP Users resource'u exclude etmeyin, permission kontrolü yapması için
|
||
],
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Pages
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Most Filament pages only require view permissions. Pages listed in the
|
||
| exclude array will be skipped during permission generation and won't
|
||
| appear in your role management interface.
|
||
|
|
||
*/
|
||
|
||
'pages' => [
|
||
'subject' => 'class',
|
||
'prefix' => 'view',
|
||
'exclude' => [
|
||
\Filament\Pages\Dashboard::class,
|
||
],
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Widgets
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Like pages, widgets typically only need view permissions. Add widgets
|
||
| to the exclude array if you don't want them to appear in your role
|
||
| management interface.
|
||
|
|
||
*/
|
||
|
||
'widgets' => [
|
||
'subject' => 'class',
|
||
'prefix' => 'view',
|
||
'exclude' => [
|
||
\Filament\Widgets\AccountWidget::class,
|
||
\Filament\Widgets\FilamentInfoWidget::class,
|
||
],
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Custom Permissions
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Sometimes you need permissions that don't map to resources, pages, or
|
||
| widgets. Define any custom permissions here and they'll be available
|
||
| when editing roles in your application.
|
||
|
|
||
*/
|
||
|
||
'custom_permissions' => [],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Entity Discovery
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| By default, Shield only looks for entities in your default Filament
|
||
| panel. Enable these options if you're using multiple panels and want
|
||
| Shield to discover entities across all of them.
|
||
|
|
||
*/
|
||
|
||
'discovery' => [
|
||
'discover_all_resources' => false,
|
||
'discover_all_widgets' => false,
|
||
'discover_all_pages' => false,
|
||
],
|
||
|
||
/*
|
||
|--------------------------------------------------------------------------
|
||
| Role Policy
|
||
|--------------------------------------------------------------------------
|
||
|
|
||
| Shield can automatically register a policy for role management itself.
|
||
| This lets you control who can manage roles using Laravel's built-in
|
||
| authorization system. Requires a RolePolicy class in your app.
|
||
|
|
||
*/
|
||
|
||
'register_role_policy' => true,
|
||
|
||
];
|