feat: Initialize core application structure including authentication, role-based dashboards, service task management, and integration workflows.
This commit is contained in:
54
database/seeders/RolesAndPermissionsSeeder.php
Normal file
54
database/seeders/RolesAndPermissionsSeeder.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Spatie\Permission\Models\Role;
|
||||
use Spatie\Permission\Models\Permission;
|
||||
|
||||
class RolesAndPermissionsSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
// Reset cached roles and permissions
|
||||
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
|
||||
|
||||
// Create permissions
|
||||
$permissions = [
|
||||
'create integration',
|
||||
'validate rh',
|
||||
'manage dsi tasks',
|
||||
'manage batiment tasks',
|
||||
'manage parc auto tasks',
|
||||
'view dashboard',
|
||||
'export reports',
|
||||
];
|
||||
|
||||
foreach ($permissions as $permission) {
|
||||
Permission::firstOrCreate(['name' => $permission]);
|
||||
}
|
||||
|
||||
// Create roles and assign permissions
|
||||
Role::firstOrCreate(['name' => 'Admin'])->givePermissionTo(Permission::all());
|
||||
|
||||
Role::firstOrCreate(['name' => 'RH'])->givePermissionTo([
|
||||
'create integration',
|
||||
'validate rh',
|
||||
'view dashboard',
|
||||
'export reports',
|
||||
]);
|
||||
|
||||
$services = ['DSI', 'Batiment', 'ParcAuto'];
|
||||
foreach ($services as $service) {
|
||||
Role::firstOrCreate(['name' => $service])->givePermissionTo([
|
||||
'manage ' . strtolower($service === 'ParcAuto' ? 'parc auto' : $service) . ' tasks',
|
||||
'view dashboard',
|
||||
]);
|
||||
}
|
||||
|
||||
Role::firstOrCreate(['name' => 'Prescripteur'])->givePermissionTo([
|
||||
'create integration',
|
||||
'view dashboard',
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user