Add documentation for dashboard routing fixes

This commit is contained in:
2025-09-22 13:04:51 +02:00
parent 880f4fb615
commit 0f9e8781e3

172
DASHBOARD_FIX.md Normal file
View File

@@ -0,0 +1,172 @@
# 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:
```python
SECRET_KEY = 'your-secret-key-here'
```
### Passo 2: Inizializza il Database
Assicurati che il database sia inizializzato e accessibile:
```bash
# 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:
```bash
# 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:
```bash
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:**
```bash
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:**
```bash
# 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.