Profilo utente, ruoli e permessi sugli endpoint
v0.4.0
Descrizione della versione
Warning
Questa versione NON è retro compatibile con la versione v0.0.0 del Client
La seguente versione è attualmente disponibile solo per essere testata tramite terminale o file di test http (vedi src/main/test/chiamate-endpoint).
La versione v0.4.0 racchiude al suo interno delle le versioni v0.1.0 (introduzione del profilo utente), v0.2.0 (sistema di registrazione e login), v0.3.0 (sistema multi ruolo con UTENTE e ADMIN) e infine la v0.4.0 (gestione dei permessi configurabili sugli endpoint). La scelta di pubblicare una sola versione dipende fortemente dal legame intrinseco dei precedenti quattro moduli, che rende complicato separe i moduli in moduli indipendenti pronti per la pubblicazione.
Funzionalità lato server
È stata introdotta la possibilità di registrarsi e fare login su MakerManager. L'account memorizza un nickname (unico), una mail (unica), e una password criptata. La sicurezza è gestita da JWT con token di autenticazione che hanno validità 24 ore a partire dal login o dalla registrazione. L'utente adesso può essere autore di uno o più progetti ed è associato come utente vero e proprio a uno o più inventari (prima nel caso dell'inventario esisteva solo un placeholder numerico). Il sistema supporta un meccanismo multi ruolo per gli utenti registrati (UTENTE / ADMIN) e consente sia la possibilità di impostare permessi globali sugli endpoint definendo chi può accedere (PUBBLICO, AUTENTICATO, ADMIN, UTENTE), sia la possibilità di avere permessi locali (es. solo un PROPRIETARIO o un ADMIN può visualizzare o avere accesso a un inventario).
Il json di inzializzazione è stato modificato sulla base delle nuove aggiunte. Adesso anche i progetti di /inizializza vengono associati agli utenti e vengono creati due utenti di test. In più un admin è garantito all'avvio del server e le sue credenziali sono modificabili in application.properties.
Questo è il nuovo elenco di endpoint con le aggiunte e le modifiche dei permessi (vedi in grassetto)
- Inizializzazione
- Inizializza il database (ADMIN)
- Autenticazione <---
- Registrazione (PUBBLICO) <---
- Login (PUBBLICO) <---
- Utenti <---
- Visualizza il proprio profilo (AUTENTICATO) <---
- Visualizza tutti gli utenti (ADMIN) <---
- Catalogo
- Visualizza elementi in catalogo (PUBBLICO)
- Aggiungi un elemento al catalogo (AUTENTICATO)
- Elimina un elemento dal catalogo a partire dal suo
id(ADMIN)
- Inventario
- Visualizza tutti gli inventari (ADMIN)
- Visualizza il contenuto di un inventario (PROPRIETARIO / ADMIN)
- Visualizza gli inventari di un utente (PROPRIETARIO / ADMIN)
- Crea un nuovo inventario (AUTENTICATO)
- Elimina un inventario a partire dal suo
id(PROPRIETARIO / ADMIN) - Aggiungi un articolo a un inventario (PROPRIETARIO / ADMIN)
- Elimina un articolo dall'inventario a partire dal suo
id(PROPRIETARIO / ADMIN)
- Progetti
- Visualizza tutti i progetti (PUBBLICO)
- Visualizza un progetto a partire dal suo
id(PUBBLICO) - Visualizza i progetti di una tipologia (PUBBLICO)
- Visualizza i progetti di un utente (PUBBLICO) <---
- Crea un nuovo progetto (AUTENTICATO)
- Elimina un progetto a partire dal suo
id(PROPRIETARIO / ADMIN) - Aggiungi una riga alla BOM di un progetto (PROPRIETARIO / ADMIN)
- Elimina una riga dalla BOM di un progetto a partire dal suo
id(PROPRIETARIO / ADMIN)