CRM/backend/database/seeders/RolePermissionSeeder.php

36 خطوط
931 B
PHP

<?php
namespace Database\Seeders;
use App\Support\PermissionCatalog;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Spatie\Permission\PermissionRegistrar;
class RolePermissionSeeder extends Seeder
{
public function run(): void
{
app(PermissionRegistrar::class)->forgetCachedPermissions();
foreach (PermissionCatalog::ALL as $permission) {
Permission::firstOrCreate([
'name' => $permission,
'guard_name' => 'web',
]);
}
foreach (PermissionCatalog::ROLE_DEFAULTS as $roleName => $permissions) {
$role = Role::firstOrCreate([
'name' => $roleName,
'guard_name' => 'web',
]);
$role->syncPermissions($permissions);
}
app(PermissionRegistrar::class)->forgetCachedPermissions();
}
}