172 lines
4.9 KiB
Markdown
172 lines
4.9 KiB
Markdown
# 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. |