- Added `DefaultUserRole` and permissions enums (`AccessManager`, `Apps`, `Settings`) for centralizing role and permission constants. - Implemented `DashboardRoute` helper to resolve routes dynamically based on user roles. - Introduced seeders for default roles (`DefaultRoleWithPermissionSeeder`, `PermissionSeeder`, `ExampleUserWithRoleSeeder`) with role-permission assignments. - Created `EnumExtractor` utility for parsing enums and generating permissions. - Customized dashboard routes with role-based redirection logic. - Updated sidebar navigation to display role-based menu items with permission checks.
24 lines
585 B
PHP
24 lines
585 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Helpers\EnumExtractor;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
class PermissionSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$enumExtractor = new EnumExtractor('App\\Enums\\Permissions', __DIR__.'/../../app/Enums/Permissions');
|
|
$allEnums = $enumExtractor->extract();
|
|
foreach ($allEnums as $enumCases) {
|
|
foreach ($enumCases as $case) {
|
|
Permission::create(['name' => $case->value]);
|
|
}
|
|
}
|
|
}
|
|
}
|