info('🔧 Installazione permessi modulo Contabilità...'); // Definisci i permessi del modulo $permissions = [ 'contabilita_view' => 'Visualizzare registrazioni contabili', 'contabilita_create' => 'Creare nuove registrazioni contabili', 'contabilita_edit' => 'Modificare registrazioni contabili', 'contabilita_delete' => 'Eliminare registrazioni contabili', 'contabilita_export' => 'Esportare dati contabili', 'contabilita_import' => 'Importare dati contabili', 'contabilita_reports' => 'Visualizzare report contabili', 'contabilita_settings' => 'Gestire impostazioni contabilità' ]; // Crea i permessi foreach ($permissions as $name => $description) { $permission = Permission::firstOrCreate( ['name' => $name], ['guard_name' => 'web'] ); $this->line("✅ Permesso: {$name}"); } // Assegna permessi ai ruoli amministrativi $adminRoles = ['admin', 'amministratore', 'super-admin']; foreach ($adminRoles as $roleName) { $role = Role::where('name', $roleName)->first(); if ($role) { foreach (array_keys($permissions) as $permissionName) { $permission = Permission::where('name', $permissionName)->first(); if ($permission && !$role->hasPermissionTo($permission)) { $role->givePermissionTo($permission); } } $this->line("✅ Permessi assegnati al ruolo: {$roleName}"); } } // Aggiorna il record del modulo nel database DB::table('modules') ->where('name', 'Contabilita') ->update([ 'permissions' => json_encode(array_keys($permissions)), 'updated_at' => now() ]); $this->info('🎉 Permessi modulo Contabilità installati con successo!'); return 0; } }