Files
hersel.it/DASHBOARD_FIX.md

4.9 KiB

Dashboard Routing Fix

Questo branch (fix-dashboard-routing) contiene le correzioni per risolvere i problemi di accesso alla dashboard nel branch dynamic-site-enhancement.

Problemi Risolti

1. Template Mancante

  • Aggiunto il template mancante templates/dashboard/users.html
  • Il template è ora completo con paginazione e gestione degli errori

2. Gestione Errori Migliorata

  • Aggiunta gestione degli errori in tutte le route della dashboard
  • Messaggi di errore più dettagliati per il debugging
  • Fallback sicuri quando il database non è accessibile

3. Route di Debug

  • Aggiunta route /dashboard/debug/auth per controllare lo stato di autenticazione
  • Aggiunta route /dashboard/debug/access per testare l'accesso alla dashboard
  • Informazioni dettagliate su sessioni e privilegi utente

4. Script di Utilità

  • Creato script utils/create_admin.py per creare utenti amministratore
  • Supporto per creare, listare e promuovere utenti

Come Risolvere i Problemi di Accesso

Passo 1: Verifica la Configurazione

Assicurati che il file config.py abbia la SECRET_KEY configurata:

SECRET_KEY = 'your-secret-key-here'

Passo 2: Inizializza il Database

Assicurati che il database sia inizializzato e accessibile:

# Con Docker Compose
docker-compose up -d db

# Controlla i log per errori
docker-compose logs app

Passo 3: Crea un Utente Amministratore

Usa lo script di utilità per creare un utente admin:

# Crea utente admin predefinito
python utils/create_admin.py create

# Oppure promuovi un utente esistente
python utils/create_admin.py promote username

# Lista tutti gli utenti
python utils/create_admin.py list

Passo 4: Testa l'Accesso

  1. Controlla lo stato di autenticazione:

    GET /dashboard/debug/auth
    

    Questo ti dirà se sei loggato e hai i privilegi corretti.

  2. Testa l'accesso alla dashboard:

    GET /dashboard/debug/access
    

    Questo ti dirà se puoi accedere alla dashboard e perché.

  3. Effettua il login:

    • Vai a /auth/login
    • Usa le credenziali dell'utente admin
    • Dovresti essere reindirizzato automaticamente a /dashboard/

Credenziali Admin Predefinite

Se usi lo script create_admin.py create, verranno create queste credenziali:

  • Username: admin
  • Email: admin@hersel.it
  • Password: admin123

⚠️ IMPORTANTE: Cambia la password predefinita dopo il primo login!

Troubleshooting

Problema: "401 Login required"

Soluzione: Non sei loggato. Vai a /auth/login e effettua il login.

Problema: "403 Admin access required"

Soluzione: Il tuo utente non ha privilegi di amministratore. Usa:

python utils/create_admin.py promote il_tuo_username

Problema: "500 Internal Server Error"

Possibili cause:

  1. Database non accessibile
  2. Errore nei template
  3. Configurazione mancante

Debug:

  1. Controlla i log dell'applicazione
  2. Usa le route di debug: /dashboard/debug/auth e /dashboard/debug/access
  3. Verifica la configurazione del database

Problema: Template non trovato

Soluzione: Assicurati che tutti i template esistano in templates/dashboard/:

  • index.html
  • projects.html
  • project_form.html
  • users.html (aggiunto in questo fix)
  • base.html

URL della Dashboard

Dopo aver risolto i problemi di autenticazione, puoi accedere a:

  • Dashboard principale: /dashboard/
  • Gestione progetti: /dashboard/projects
  • Nuovo progetto: /dashboard/projects/new
  • Gestione utenti: /dashboard/users
  • Debug autenticazione: /dashboard/debug/auth
  • Test accesso: /dashboard/debug/access

Modifiche Apportate

  1. templates/dashboard/users.html - Nuovo template per la gestione utenti
  2. routes/dashboard.py - Migliorate gestione errori e aggiunte route di debug
  3. utils/create_admin.py - Nuovo script per gestire utenti amministratore
  4. DASHBOARD_FIX.md - Questa documentazione

Come Applicare i Fix

  1. Merge di questo branch:

    git checkout dynamic-site-enhancement
    git merge fix-dashboard-routing
    
  2. Oppure crea un PR:

    • Crea una pull request da fix-dashboard-routing a dynamic-site-enhancement
    • Rivedi le modifiche e fai il merge
  3. Testa l'applicazione:

    # Restart dell'applicazione
    docker-compose restart app
    
    # Crea utente admin
    docker-compose exec app python utils/create_admin.py create
    
    # Testa l'accesso
    curl http://localhost:5000/dashboard/debug/access
    

Supporto

Se hai ancora problemi dopo aver applicato questi fix:

  1. Controlla i log dell'applicazione
  2. Usa le route di debug per diagnosticare il problema
  3. Verifica che il database sia accessibile
  4. Assicurati di avere un utente con privilegi di amministratore

Tutti i fix sono backward-compatible e non dovrebbero causare problemi al codice esistente.