2.4 KiB
2.4 KiB
0009 — Accesso: admin = superuser PocketBase, utenti con account
- Stato: Sostituito da 0013
- Data: 2026-10-11
Contesto
Requisiti F-11 e F-12: per guardare serve un account; solo l'admin (uno solo) aggiunge, modifica ed elimina filmati e categorie. Decisioni dell'utente del 2026-10-11: account creati solo dall'admin, accesso già dall'MVP, admin = superuser.
Decisione
- Admin: l'unico superuser di PocketBase. Non è un ruolo applicativo: l'interfaccia di gestione (upload, categorie, modifica, eliminazione) richiede il login da superuser.
- Utenti: record di una collection di autenticazione, creati solo dall'admin; nessuna registrazione libera (
createRulebloccata). - API rules su
categoriesevideos: lettura solo con@request.auth.id != ""; creazione, modifica, eliminazione bloccate (null) ⇒ solo superuser. Suprogress: ogni utente solo i propri record (ADR 0008). - Il server resta su 127.0.0.1 (02-architettura.md); l'accesso vale già in locale.
Alternative considerate
- Ruolo
adminsu un utente normale: permette più admin, ma l'utente ne vuole uno solo; più superficie e più regole da testare. - Lettura libera senza login: scartata dall'utente (F-12).
- Registrazione libera: scartata, gli account li crea l'admin.
Conseguenze
- ✔ Nessun codice di ruoli: le rules con
nullsono il meccanismo nativo. - ✔ Pochissime regole da testare.
- ✘ L'admin non può guardare "come utente" con lo stesso account: i superuser ignorano le rules e non sono utenti della collection; per testare la vista utente serve un account utente.
- ✘ Il frontend deve gestire due login distinti (utente e superuser), da verificare in M1.
- Da verificare in M0/M1: nome e comportamento della collection di autenticazione utenti e del superuser nella versione fissata (la pagina collections non lo specifica); durata del token; reset password creata dall'admin.
Fonti
- https://pocketbase.io/docs/api-rules-and-filters/ (consultata 2026-10-11): le rules sono ignorate per i superuser;
null= solo superuser (default); stringa vuota = chiunque;@request.auth.id != ""= utente autenticato. - https://pocketbase.io/docs/collections/ (consultata 2026-10-11):
_superuserscitata solo per la gestione delle collection; esistenza di una collectionuserspredefinita e registrazione libera non confermate.