- 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.
30 lines
860 B
PHP
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);
|
|
}
|
|
}
|