Files
CABM-IT/database/seeders/RolesAndPermissionsSeeder.php
T
mrKamooandClaude Sonnet 5 01233928cc Ajoute géolocalisation des sites, duplication d'actifs et intégration GLPI
- Coordonnées GPS sur les sites (formulaire + carte Leaflet en direct sur
  la fiche et sur la liste des sites d'une organisation).
- Duplication d'un actif depuis la liste.
- Intégration GLPI en lecture seule : panneau "Tickets" sur le tableau de
  bord de l'organisation (tickets non clos, priorité, catégorie, extrait),
  organisations liées à leur entité GLPI via glpi_entity_id.
- Corrige la mise en cache des permissions Spatie lors du seed (silencée
  par WithoutModelEvents) et rend le seeder admin idempotent.
- Ajoute busy_timeout/WAL à la config SQLite pour éviter les erreurs de
  verrou sous écritures concurrentes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 08:45:49 +02:00

42 lines
1.2 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Spatie\Permission\PermissionRegistrar;
class RolesAndPermissionsSeeder extends Seeder
{
public function run(): void
{
$permissions = [
'manage-users',
'manage-asset-types',
'view-content',
'edit-content',
'delete-content',
];
foreach ($permissions as $permission) {
Permission::findOrCreate($permission);
}
// DatabaseSeeder uses WithoutModelEvents, which silences the
// saved/deleted events Spatie relies on to invalidate its
// permission cache. Reset it manually so newly created
// permissions are visible below.
app(PermissionRegistrar::class)->forgetCachedPermissions();
$admin = Role::findOrCreate('Administrateur');
$admin->syncPermissions($permissions);
$technician = Role::findOrCreate('Technicien');
$technician->syncPermissions(['view-content', 'edit-content', 'delete-content']);
$readOnly = Role::findOrCreate('Lecture seule');
$readOnly->syncPermissions(['view-content']);
}
}