= d7c2491fed Refactor: consolidate and replace permission enums for streamlined access management
- Replaced `AccessManager`, `Apps`, and `Settings` enums with modular enums like `RoleAndAppsPermissionEnum`, `AppPermissionEnum`, etc.
- Updated route, view, Livewire components, and tests to use new modular enums.
- Enhanced `DefaultRoleWithPermissionSeeder` and `PermissionSeeder` with updated enums.
- Added README in the Enums/Permissions directory to explain usage and naming conventions.
- Refactored dashboard sidebar and route definitions for better enum-based permission handling.
- Improved test coverage to validate new permission enums functionality.
2026-05-25 06:18:09 +00:00

35 lines
1.0 KiB
Markdown

# Permissions Enums
This directory contains all the permissions enums.
Spatie/laravel-permission uses these enums to check permissions.
Any Permission enum added here will be automatically added to the database, when the
[PermissionSeeder](../../../database/seeders/PermissionSeeder.php) is run, no need to add it manually.
This is done via Reflection API.
`Only string backed are supported.`
## Value format of Enum
We are following the convention of `scope:resource:action` .
**File name** of the enum should be same as the **scope name**, and Enum *value* should be in the format of
*resource:action*.
Example:
UserPermissionEnum.php
```php
namespace App\Enums\Permissions;
enum UserPermissionEnum:string
{
case Create = 'user:create';
case Read = 'user:read';
case Update = 'user:update';
case Delete = 'user:delete';
}
// using the enum makes straight forward permission check
$user->can(UserPermissionEnum::Create);
@can(UserPermissionEnum::Create);
```