Skip to content

Profilo utente, ruoli e permessi sugli endpoint

Choose a tag to compare

@giuse27 giuse27 released this 07 Jul 08:46

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)