Refs gitea:Adriano/AI-OS#310 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1.3 KiB
Task 13: Gestione utenti — report
Status: OK.
Commit: c36ad4c — feat(users): gestione utenti /admin/users con guardie self/ultimo-admin
Test: 14 file, 70 test passati (incluso tests/users.test.ts, 6 test).
Build: npm run build completato senza errori.
Helper aggiunti in auth.ts: countAdmins, getUserById, updateUserRole, updateUserPassword, deleteUser, randomPassword, isRole (non esisteva ancora, creato in questo task).
Endpoint creati: POST/GET /api/admin/users, PUT /api/admin/users/[id]/role, POST /api/admin/users/[id]/reset-password, DELETE /api/admin/users/[id]. Pagina: src/pages/admin/users.astro.
Guardie verificate nel codice: reset-password restituisce password in chiaro solo nella risposta immediata (non persistita altrove); DELETE vieta self-delete e ultimo admin; PUT role vieta declassare l'ultimo admin.
Concern: nessuno bloccante. Non sono stati scritti test end-to-end per gli endpoint (solo per gli helper, come da brief) — guardie verificate a lettura codice, non da test automatici sulle route API.
Nota: questo file conteneva in precedenza il report di un altro task 13 (pagina contatti/email) — probabile collisione di numerazione tra sequenze di task diverse. Sovrascritto con il report di questo task su richiesta esplicita del path.