✅ Completato: - Database modernizzato con chiavi id standard Laravel - Relazioni corrette Amministratore→Stabili→Movimenti - UI universale responsive con sidebar permission-based - Codici alfanumerici 8 caratteri implementati - Seeders con dati di test funzionanti - Documentazione tecnica completa (INSTALL_LINUX, TECHNICAL_SPECS, UPDATE_SYSTEM) 🔧 Miglioramenti: - Helper userSetting() funzionante - Sistema multi-database preparato - .gitignore aggiornato per sicurezza - Migration cleanup e ottimizzazione 📚 Documentazione: - Guida installazione Linux completa - Specifiche tecniche dettagliate - Sistema aggiornamenti progettato - Progress log aggiornato
75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use App\Models\User;
|
|
use App\Models\Amministratore;
|
|
use Spatie\Permission\Models\Role;
|
|
|
|
class TestRoleSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
// Crea i ruoli se non esistono
|
|
$superAdminRole = Role::firstOrCreate(['name' => 'super-admin']);
|
|
$adminRole = Role::firstOrCreate(['name' => 'amministratore']);
|
|
$condominoRole = Role::firstOrCreate(['name' => 'condomino']);
|
|
|
|
echo "✅ Ruoli creati: super-admin, amministratore, condomino\n";
|
|
|
|
// Crea l'utente Super Admin
|
|
$superAdminUser = User::updateOrCreate([
|
|
'email' => 'superadmin@netgescon.local'
|
|
], [
|
|
'name' => 'Super Administrator',
|
|
'email_verified_at' => now(),
|
|
'password' => Hash::make('SuperAdminNetGesCon2025!'),
|
|
]);
|
|
|
|
// Assegna il ruolo
|
|
$superAdminUser->assignRole('super-admin');
|
|
|
|
echo "✅ Super Admin User creato: {$superAdminUser->email}\n";
|
|
|
|
// Crea l'amministratore associato con codice non prevedibile
|
|
$adminCode = $this->generateSecureAdminCode();
|
|
|
|
$amministratore = Amministratore::updateOrCreate([
|
|
'user_id' => $superAdminUser->id
|
|
], [
|
|
'codice_univoco' => $adminCode,
|
|
'nome' => 'Super',
|
|
'cognome' => 'Administrator',
|
|
'denominazione_studio' => 'NetGesCon System Administration',
|
|
'email_studio' => 'superadmin@netgescon.local',
|
|
]);
|
|
|
|
echo "✅ Amministratore creato con codice: {$adminCode}\n";
|
|
echo "🎯 Accesso URL: http://127.0.0.1:8000/{$adminCode}\n";
|
|
}
|
|
|
|
/**
|
|
* Genera un codice amministratore sicuro e non prevedibile
|
|
*/
|
|
private function generateSecureAdminCode(): string
|
|
{
|
|
// Per produzione: genera codice random sicuro
|
|
// Per sviluppo: usa un codice riconoscibile ma non ovvio
|
|
if (app()->environment('production')) {
|
|
do {
|
|
$codice = strtoupper(substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 8));
|
|
} while (Amministratore::where('codice_univoco', $codice)->exists());
|
|
} else {
|
|
// Codice per sviluppo: non inizia con A per evitare pattern prevedibili
|
|
$codice = 'SA' . strtoupper(substr(str_shuffle('BCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 6));
|
|
}
|
|
|
|
return $codice;
|
|
}
|
|
}
|