41 lines
1.6 KiB
PHP
41 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Enums\SystemRole;
|
|
use Illuminate\Database\Seeder;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Spatie\Permission\Models\Role;
|
|
use Spatie\Permission\PermissionRegistrar;
|
|
|
|
class RolePermissionSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
app(PermissionRegistrar::class)->forgetCachedPermissions();
|
|
|
|
$permissions = [
|
|
'tenant.view', 'tenant.create', 'tenant.update', 'tenant.delete', 'tenant.access-any',
|
|
'user.view', 'user.create', 'user.update', 'user.delete',
|
|
'device.view', 'device.create', 'device.update', 'device.delete', 'device.connect',
|
|
'device.credential.view', 'device.credential.create', 'device.credential.update', 'device.credential.delete',
|
|
'device.user.view', 'device.user.create', 'device.user.update', 'device.user.delete', 'device.user.mass_update',
|
|
'device.master_account.manage', 'device.command.execute', 'device.command.mass_execute',
|
|
'device.config.view', 'device.config.deploy', 'device.backup.create', 'device.backup.download',
|
|
'device.backup.restore', 'device.monitoring.view', 'audit.view',
|
|
'license.view', 'license.manage', 'installation.view', 'installation.manage',
|
|
];
|
|
|
|
foreach ($permissions as $permission) {
|
|
$model = Permission::findOrCreate($permission, 'web');
|
|
$model->forceFill(['is_system' => true])->save();
|
|
}
|
|
|
|
setPermissionsTeamId(null);
|
|
Role::findOrCreate(SystemRole::MasterAdmin->value, 'web')->syncPermissions(Permission::all());
|
|
}
|
|
}
|