singleloginsystem/database/seeders/DefaultRoleWithPermissionSeeder.php
= 2a19940635 Feat: implement role-based priority restrictions and permission manager
- Added `priority`-based access logic to restrict role and user management actions.
- Introduced `Permission Manager` UI and routes for permission access control.
- Updated `RoleService` and `AppRoleService` to include `visible` scope for priority filtering.
- Enhanced seeding to assign priorities to default roles and ensure proper hierarchy.
- Updated sidebar, routes, and data structure to handle new permission enums and resource segmentation.
- Improved UI components to dynamically restrict visibility and actions based on role priority.
2026-05-25 10:14:28 +00:00

30 lines
860 B
PHP

<?php
declare(strict_types=1);
namespace Database\Seeders;
use App\Enums\DefaultUserRole;
use App\Enums\Permissions\{ProfilePermissionEnum, SecurityPermissionEnum};
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->update(['priority' => 0]);
$role->givePermissionTo(Permission::all());
$role = Role::findOrCreate(DefaultUserRole::User->value);
$role->update(['priority' => 100]);
$this->syncUserPermissions($role);
}
private function syncUserPermissions(Role $role): void
{
$role->givePermissionTo(ProfilePermissionEnum::Access->value, SecurityPermissionEnum::Access->value);
}
}