vernova/database/seeders/PermissionSeeder.php
2026-07-26 19:58:27 +03:30

55 lines
1.5 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class PermissionSeeder extends Seeder
{
public function run(): void
{
$permissions = [
'manage projects',
'manage expenses',
'manage petty cash',
'manage employees',
'manage tasks',
'manage inventory',
'manage attachments',
'manage users',
'manage settings',
'view reports',
'view dashboard',
];
foreach ($permissions as $permission) {
Permission::firstOrCreate(['name' => $permission, 'guard_name' => 'web']);
}
// Assign all permissions to admin role
$adminRole = Role::where('name', 'admin')->first();
if ($adminRole) {
$adminRole->syncPermissions(Permission::all());
}
// Assign basic permissions to manager role
$managerRole = Role::where('name', 'manager')->first();
if ($managerRole) {
$managerRole->syncPermissions([
'manage projects',
'manage expenses',
'manage petty cash',
'manage employees',
'manage tasks',
'manage inventory',
'manage attachments',
'view reports',
'view dashboard',
]);
}
$this->command->info('Permissions seeded successfully!');
}
}