-
-
Notifications
You must be signed in to change notification settings - Fork 78
Description
Comportamento richiesto
Molto spesso è stato richiesta una qualche forma di estensione del sistema di permessi di OpenSTAManager, in relazione a strutture particolari o anche singoli record (tra i più recenti: #186, #677, #783).
E' quindi necessario prevedere una struttura più complessa di permessi, non limitata all'attuale sistema di nessun-permesso/lettura/lettura-scrittura. Il sistema di permessi è comunque indirizzato agli utenti, e secondo questa logica non gestisce interazioni tra elementi del gestionale.
Proposta di revisione del database:
- zz_permissions: id | element_type (classe Eloquent) | element_id | name
- zz_group_permission: group_id | permission_id
- zz_user_permission: user_id | permission_id
La tabelle zz_permissions deve contenere i permessi registrati nel gestionale. Questi permessi possono essere predefiniti (per esempio, permessi globali come nessun-permesso/lettura/lettura-scrittura per componenti di base come moduli/plugin, oppure visibile/nascosto per widget/stampe) oppure variabili e gestiti da Components (per esempio, il modulo Gestione documentale può utilizzare questo sistema per gestire accesso e visualizzazione dei documenti).
La gerarchia dei permessi deve prevedere la priorità dei permessi utente rispetto ai permessi del gruppo. Da definire una classe ausiliare che permetta una gestione semplificata della lettura da zz_permissions di conseguenza.
Questo sistema permetterebbe inoltre di estendere i permessi su specifici componenti del gestionale, come Note interne e Checklists.
Note Interne:
- Crea e vedi tutto
- Crea e vedi solo dell'utente
- Vedi solo dell'utente
- Nascondi tutto
Checklists: come per le Note interne, dove Nascondi tutto -> Nascondi non assegnate.