- 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>
42 lines
1.2 KiB
PHP
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']);
|
|
}
|
|
}
|