Add documentation for dashboard routing fixes
This commit is contained in:
172
DASHBOARD_FIX.md
Normal file
172
DASHBOARD_FIX.md
Normal 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.
|
||||
Reference in New Issue
Block a user