singleloginsystem/database/seeders/DefaultRoleWithPermissionSeeder.php
= f02caef80c Feat: add role seeding, dashboard routing
- 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.
2026-05-21 10:24:57 +00:00

28 lines
711 B
PHP

<?php
declare(strict_types=1);
namespace Database\Seeders;
use App\Enums\DefaultUserRole;
use App\Enums\Permissions\Settings;
use App\Models\Role;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
class DefaultRoleWithPermissionSeeder extends Seeder
{
public function run(): void
{
$role = Role::findOrCreate(DefaultUserRole::Admin->value);
$role->givePermissionTo(Permission::all());
$role = Role::findOrCreate(DefaultUserRole::User->value);
$this->syncUserPermissions($role);
}
private function syncUserPermissions(Role $role): void
{
$role->givePermissionTo(Settings::Profile->value, Settings::Security->value);
}
}