++ gruppi di servizio: sorvegliante con utenza limitata, pacchetto di territori, assegnazione ai membri

Il gruppo ha un sorvegliante (proclamatore con utenza: email e password
temporanea, senza conferma dell'email) e dei membri; l'amministratore
mette in blocco dei territori nel pacchetto del gruppo. Il pacchetto non
e' un'assegnazione e non tocca le statistiche; quando il sorvegliante da'
un territorio a un membro nasce un'assegnazione normale con
gruppo_servizio_id. Al rientro il territorio torna in reparto. Sciogliere
il gruppo libera pacchetto e membri e disattiva l'utenza.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Francesco Picone
2026-10-19 17:51:37 +02:00
parent 5d0ae06eca
commit 96084499f5
41 changed files with 2298 additions and 224 deletions

View File

@@ -25,6 +25,7 @@ class RolesAndPermissionsSeeder extends Seeder
'territori.return',
'audit.view',
'audit.export',
'gruppo.gestisci',
];
foreach ($permissions as $permission) {
@@ -43,7 +44,9 @@ class RolesAndPermissionsSeeder extends Seeder
// Amministratore: all permissions
$admin = Role::firstOrCreate(['name' => 'amministratore']);
$admin->givePermissionTo($permissions);
// Tutti tranne gruppo.gestisci, che è del solo sorvegliante: l'admin
// gestisce i gruppi da settings.manage, non ne ha uno suo.
$admin->givePermissionTo(array_values(array_diff($permissions, ['gruppo.gestisci'])));
// Assistente: proclamatori, campagne, assign, return
$assistente = Role::firstOrCreate(['name' => 'assistente']);
@@ -61,5 +64,10 @@ class RolesAndPermissionsSeeder extends Seeder
'territori.assign',
'territori.return',
]);
// Sorvegliante di gruppo: solo il proprio gruppo di servizio. Il ruolo
// si dà creando un gruppo (Gruppi di servizio), mai dalla pagina Utenti.
$sorvegliante = Role::firstOrCreate(['name' => 'sorvegliante']);
$sorvegliante->givePermissionTo(['gruppo.gestisci']);
}
}