55 lines
1.5 KiB
PHP
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!');
|
|
}
|
|
} |