$roleName, 'guard_name' => 'web']); } // Crea permissions di base + permessi granulari (menu/aree) $permissions = [ 'view-dashboard', 'manage-stabili', 'manage-condomini', 'manage-users', 'view-reports', 'manage-tickets', 'manage-accounting', // Contabilità (granulare) 'contabilita.gestioni', 'contabilita.prima-nota', 'contabilita.regole-prima-nota', 'contabilita.casse-banche', 'contabilita.fatture-elettroniche', 'contabilita.fatture-fornitori', 'contabilita.voci-spesa', 'contabilita.preventivi', 'contabilita.registro-ra', // Deleghe specifiche (fuori gruppo) 'contabilita.bonifici.autorizza', ]; foreach ($permissions as $permissionName) { Permission::firstOrCreate(['name' => $permissionName, 'guard_name' => 'web']); } // Assegna permissions ai ruoli $superAdmin = Role::findByName('super-admin'); $superAdmin->givePermissionTo(Permission::all()); $admin = Role::findByName('admin'); $admin->givePermissionTo([ 'view-dashboard', 'manage-stabili', 'manage-condomini', 'manage-users', 'view-reports', 'manage-tickets', 'manage-accounting', // Contabilità (granulare) 'contabilita.gestioni', 'contabilita.prima-nota', 'contabilita.regole-prima-nota', 'contabilita.casse-banche', 'contabilita.fatture-elettroniche', 'contabilita.fatture-fornitori', 'contabilita.voci-spesa', 'contabilita.preventivi', 'contabilita.registro-ra', ]); $amministratore = Role::findByName('amministratore'); $amministratore->givePermissionTo([ 'view-dashboard', 'manage-stabili', 'manage-condomini', 'manage-users', 'view-reports', 'manage-tickets', 'manage-accounting', // Contabilità (granulare) 'contabilita.gestioni', 'contabilita.prima-nota', 'contabilita.regole-prima-nota', 'contabilita.casse-banche', 'contabilita.fatture-elettroniche', 'contabilita.fatture-fornitori', 'contabilita.voci-spesa', 'contabilita.preventivi', 'contabilita.registro-ra', // Deleghe specifiche 'contabilita.bonifici.autorizza', ]); $collaboratore = Role::findByName('collaboratore'); $collaboratore->givePermissionTo([ 'view-dashboard', 'manage-condomini', 'view-reports', 'manage-tickets', 'manage-accounting', // Contabilità (granulare) 'contabilita.gestioni', 'contabilita.prima-nota', 'contabilita.regole-prima-nota', 'contabilita.casse-banche', 'contabilita.fatture-elettroniche', 'contabilita.fatture-fornitori', 'contabilita.voci-spesa', 'contabilita.preventivi', 'contabilita.registro-ra', 'contabilita.bonifici.autorizza', ]); $impiegato = Role::findByName('impiegato'); $impiegato->givePermissionTo([ 'view-dashboard', 'view-reports', ]); $fornitore = Role::findByName('fornitore'); $fornitore->givePermissionTo([ 'view-dashboard', ]); $condomino = Role::findByName('condomino'); $condomino->givePermissionTo([ 'view-dashboard', 'view-reports' ]); } }