Masters and Transaction changes

This commit is contained in:
dhanabalan
2025-03-24 17:23:01 +05:30
parent 04ee0cadd5
commit c631f1f2c0
123 changed files with 6935 additions and 32 deletions

View File

@@ -0,0 +1,218 @@
<?php
return [
'resources' => [
'PermissionResource' => \Althinect\FilamentSpatieRolesPermissions\Resources\PermissionResource::class,
'RoleResource' => \Althinect\FilamentSpatieRolesPermissions\Resources\RoleResource::class,
],
'preload_roles' => true,
'preload_permissions' => true,
'navigation_section_group' => 'filament-spatie-roles-permissions::filament-spatie.section.roles_and_permissions', // Default uses language constant
// 'team_model' => \App\Models\Team::class,
'scope_to_tenant' => true,
'super_admin_role_name' => 'Super Admin',
/*
* Set as false to remove from navigation.
*/
'should_register_on_navigation' => [
'permissions' => true,
'roles' => true,
],
'should_show_permissions_for_roles' => true,
/*
* Set as true to use simple modal resource.
*/
'should_use_simple_modal_resource' => [
'permissions' => false,
'roles' => false,
],
/*
* Set as true to remove empty state actions.
*/
'should_remove_empty_state_actions' => [
'permissions' => false,
'roles' => false,
],
/**
* Set to true to redirect to the resource index instead of the view
*/
'should_redirect_to_index' => [
'permissions' => [
'after_create' => false,
'after_edit' => false,
],
'roles' => [
'after_create' => false,
'after_edit' => false,
],
],
/**
* Set to true to display relation managers in the resources
*/
'should_display_relation_managers' => [
'permissions' => true,
'users' => true,
'roles' => true,
],
/*
* If you want to place the Resource in a Cluster, then set the required Cluster class.
* Eg. \App\Filament\Clusters\Cluster::class
*/
'clusters' => [
'permissions' => null,
'roles' => null,
],
'guard_names' => [
'web' => 'web',
'api' => 'api',
],
'toggleable_guard_names' => [
'roles' => [
'isToggledHiddenByDefault' => true,
],
'permissions' => [
'isToggledHiddenByDefault' => true,
],
],
'default_guard_name' => null,
// if false guard option will not be show on screen. You should set a default_guard_name in this case
'should_show_guard' => true,
'model_filter_key' => 'return \'%\'.$value;', // Eg: 'return \'%\'.$key.'\%\';'
'user_name_column' => 'name',
/*
* If user_name_column is an accessor from a model, then list columns to search.
* Default: null, will search by user_name_column
*
* Example:
*
* 'user_name_searchable_columns' => ['first_name', 'last_name']
*
* and in your model:
*
* public function getFullNameAttribute() {
* return $this->first_name . ' ' . $this->last_name;
* }
*
*/
'user_name_searchable_columns' => ['name'],
/*
* Icons to use for navigation
*/
'icons' => [
'role_navigation' => 'heroicon-o-lock-closed',
'permission_navigation' => 'heroicon-o-lock-closed',
],
/*
* Navigation items order - int value, false restores the default position
*/
'sort' => [
'role_navigation' => false,
'permission_navigation' => false,
],
'generator' => [
'guard_names' => [
'web',
'api',
],
'permission_affixes' => [
/*
* Permissions Aligned with Policies.
* DO NOT change the keys unless the genericPolicy.stub is published and altered accordingly
*/
'viewAnyPermission' => 'view-any',
'viewPermission' => 'view',
'createPermission' => 'create',
'updatePermission' => 'update',
'deletePermission' => 'delete',
'deleteAnyPermission' => 'delete-any',
'replicatePermission' => 'replicate',
'restorePermission' => 'restore',
'restoreAnyPermission' => 'restore-any',
'reorderPermission' => 'reorder',
'forceDeletePermission' => 'force-delete',
'forceDeleteAnyPermission' => 'force-delete-any',
],
/*
* returns the "name" for the permission.
*
* $permission which is an iteration of [permission_affixes] ,
* $model The model to which the $permission will be concatenated
*
* Eg: 'permission_name' => 'return $permissionAffix . ' ' . Str::kebab($modelName),
*
* Note: If you are changing the "permission_name" , It's recommended to run with --clean to avoid duplications
*/
'permission_name' => 'return $permissionAffix . \' \' . $modelName;',
/*
* Permissions will be generated for the models associated with the respective Filament Resources
*/
'discover_models_through_filament_resources' => false,
/*
* Include directories which consists of models.
*/
'model_directories' => [
app_path('Models'),
// app_path('Domains/Forum')
],
/*
* Define custom_models
*/
'custom_models' => [
//
],
/*
* Define excluded_models
*/
'excluded_models' => [
//
],
'excluded_policy_models' => [
\App\Models\User::class,
],
/*
* Define any other permission that should be synced with the DB
*/
'custom_permissions' => [
// 'view-log'
],
'user_model' => \App\Models\User::class,
'policies_namespace' => 'App\Policies',
],
];

89
config/filament.php Normal file
View File

@@ -0,0 +1,89 @@
<?php
return [
/*
|--------------------------------------------------------------------------
| Broadcasting
|--------------------------------------------------------------------------
|
| By uncommenting the Laravel Echo configuration, you may connect Filament
| to any Pusher-compatible websockets server.
|
| This will allow your users to receive real-time notifications.
|
*/
'broadcasting' => [
// 'echo' => [
// 'broadcaster' => 'pusher',
// 'key' => env('VITE_PUSHER_APP_KEY'),
// 'cluster' => env('VITE_PUSHER_APP_CLUSTER'),
// 'wsHost' => env('VITE_PUSHER_HOST'),
// 'wsPort' => env('VITE_PUSHER_PORT'),
// 'wssPort' => env('VITE_PUSHER_PORT'),
// 'authEndpoint' => '/broadcasting/auth',
// 'disableStats' => true,
// 'encrypted' => true,
// 'forceTLS' => true,
// ],
],
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| This is the storage disk Filament will use to store files. You may use
| any of the disks defined in the `config/filesystems.php`.
|
*/
'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DISK', 'public'),
/*
|--------------------------------------------------------------------------
| Assets Path
|--------------------------------------------------------------------------
|
| This is the directory where Filament's assets will be published to. It
| is relative to the `public` directory of your Laravel application.
|
| After changing the path, you should run `php artisan filament:assets`.
|
*/
'assets_path' => null,
/*
|--------------------------------------------------------------------------
| Cache Path
|--------------------------------------------------------------------------
|
| This is the directory that Filament will use to store cache files that
| are used to optimize the registration of components.
|
| After changing the path, you should run `php artisan filament:cache-components`.
|
*/
'cache_path' => base_path('bootstrap/cache/filament'),
/*
|--------------------------------------------------------------------------
| Livewire Loading Delay
|--------------------------------------------------------------------------
|
| This sets the delay before loading indicators appear.
|
| Setting this to 'none' makes indicators appear immediately, which can be
| desirable for high-latency connections. Setting it to 'default' applies
| Livewire's standard 200ms delay.
|
*/
'livewire_loading_delay' => 'default',
];

202
config/permission.php Normal file
View File

@@ -0,0 +1,202 @@
<?php
return [
'models' => [
/*
* When using the "HasPermissions" trait from this package, we need to know which
* Eloquent model should be used to retrieve your permissions. Of course, it
* is often just the "Permission" model but you may use whatever you like.
*
* The model you want to use as a Permission model needs to implement the
* `Spatie\Permission\Contracts\Permission` contract.
*/
'permission' => Spatie\Permission\Models\Permission::class,
/*
* When using the "HasRoles" trait from this package, we need to know which
* Eloquent model should be used to retrieve your roles. Of course, it
* is often just the "Role" model but you may use whatever you like.
*
* The model you want to use as a Role model needs to implement the
* `Spatie\Permission\Contracts\Role` contract.
*/
'role' => Spatie\Permission\Models\Role::class,
],
'table_names' => [
/*
* When using the "HasRoles" trait from this package, we need to know which
* table should be used to retrieve your roles. We have chosen a basic
* default value but you may easily change it to any table you like.
*/
'roles' => 'roles',
/*
* When using the "HasPermissions" trait from this package, we need to know which
* table should be used to retrieve your permissions. We have chosen a basic
* default value but you may easily change it to any table you like.
*/
'permissions' => 'permissions',
/*
* When using the "HasPermissions" trait from this package, we need to know which
* table should be used to retrieve your models permissions. We have chosen a
* basic default value but you may easily change it to any table you like.
*/
'model_has_permissions' => 'model_has_permissions',
/*
* When using the "HasRoles" trait from this package, we need to know which
* table should be used to retrieve your models roles. We have chosen a
* basic default value but you may easily change it to any table you like.
*/
'model_has_roles' => 'model_has_roles',
/*
* When using the "HasRoles" trait from this package, we need to know which
* table should be used to retrieve your roles permissions. We have chosen a
* basic default value but you may easily change it to any table you like.
*/
'role_has_permissions' => 'role_has_permissions',
],
'column_names' => [
/*
* Change this if you want to name the related pivots other than defaults
*/
'role_pivot_key' => null, // default 'role_id',
'permission_pivot_key' => null, // default 'permission_id',
/*
* Change this if you want to name the related model primary key other than
* `model_id`.
*
* For example, this would be nice if your primary keys are all UUIDs. In
* that case, name this `model_uuid`.
*/
'model_morph_key' => 'model_id',
/*
* Change this if you want to use the teams feature and your related model's
* foreign key is other than `team_id`.
*/
'team_foreign_key' => 'team_id',
],
/*
* When set to true, the method for checking permissions will be registered on the gate.
* Set this to false if you want to implement custom logic for checking permissions.
*/
'register_permission_check_method' => true,
/*
* When set to true, Laravel\Octane\Events\OperationTerminated event listener will be registered
* this will refresh permissions on every TickTerminated, TaskTerminated and RequestTerminated
* NOTE: This should not be needed in most cases, but an Octane/Vapor combination benefited from it.
*/
'register_octane_reset_listener' => false,
/*
* Events will fire when a role or permission is assigned/unassigned:
* \Spatie\Permission\Events\RoleAttached
* \Spatie\Permission\Events\RoleDetached
* \Spatie\Permission\Events\PermissionAttached
* \Spatie\Permission\Events\PermissionDetached
*
* To enable, set to true, and then create listeners to watch these events.
*/
'events_enabled' => false,
/*
* Teams Feature.
* When set to true the package implements teams using the 'team_foreign_key'.
* If you want the migrations to register the 'team_foreign_key', you must
* set this to true before doing the migration.
* If you already did the migration then you must make a new migration to also
* add 'team_foreign_key' to 'roles', 'model_has_roles', and 'model_has_permissions'
* (view the latest version of this package's migration file)
*/
'teams' => false,
/*
* The class to use to resolve the permissions team id
*/
'team_resolver' => \Spatie\Permission\DefaultTeamResolver::class,
/*
* Passport Client Credentials Grant
* When set to true the package will use Passports Client to check permissions
*/
'use_passport_client_credentials' => false,
/*
* When set to true, the required permission names are added to exception messages.
* This could be considered an information leak in some contexts, so the default
* setting is false here for optimum safety.
*/
'display_permission_in_exception' => false,
/*
* When set to true, the required role names are added to exception messages.
* This could be considered an information leak in some contexts, so the default
* setting is false here for optimum safety.
*/
'display_role_in_exception' => false,
/*
* By default wildcard permission lookups are disabled.
* See documentation to understand supported syntax.
*/
'enable_wildcard_permission' => false,
/*
* The class to use for interpreting wildcard permissions.
* If you need to modify delimiters, override the class and specify its name here.
*/
// 'permission.wildcard_permission' => Spatie\Permission\WildcardPermission::class,
/* Cache-specific settings */
'cache' => [
/*
* By default all permissions are cached for 24 hours to speed up performance.
* When permissions or roles are updated the cache is flushed automatically.
*/
'expiration_time' => \DateInterval::createFromDateString('24 hours'),
/*
* The cache key used to store all permissions.
*/
'key' => 'spatie.permission.cache',
/*
* You may optionally indicate a specific cache driver to use for permission and
* role caching using any of the `store` drivers listed in the cache.php config
* file. Using 'default' here means to use the `default` set in cache.php.
*/
'store' => 'default',
],
];