Gestire i permessi

Dal punto di vista implementativo, openDCN è costituito da moduli dotati di un insieme di metodi tramite i quali gli altri moduli (o l’utente esterno) sono in grado di far compiere al sistema determinate azioni.
L’esecuzione di ciascuna azione è però condizionata dal possesso da parte del richiedente del permesso per eseguirla.
Risulta impossibile utilizzare un'istanza di un modulo senza prima averne definito i permessi di accesso, dato che il comportamento automatico di ogni modulo è quello di non eseguire l’azione specificata.
Si ottiene così flessibilità e al tempo stesso sicurezza nel funzionamento del sistema.
Lo schema secondo il quale vengono definiti i permessi è:

<soggetto> <azione> <oggetto> <peso>

dove:

soggettoè un utente o un gruppo
azione è l’azione che il soggetto deve o non deve poter svolgere
oggetto è l'istanza del modulo su cui il permesso deve essere impostato (ad esempio un contenuto da visualizzare)
peso determina la priorità in caso i permessi siano in contrasto come, ad esempio, la presenza di un permesso di scrittura ad un utente e la negazione dello stesso al gruppo a cui appartiene.

L’insieme dei permessi, attribuiti direttamente (nel caso di un utente o un gruppo) o indirettamente (nel caso di un utente che appartenga ad uno o più gruppi), determina il Ruolo che quel soggetto ricopre rispetto a quell’oggetto.
Nel caso in cui il soggetto sia un utente, il Ruolo rispetto ad un oggetto può essere determinato indirettamente dall’appartenenza ad uno o più gruppi con permessi sul medesimo oggetto. In questo caso infatti l’utente risulta essere in possesso dell’unione di tutti i permessi: quelli attribuitigli direttamente e quelli derivanti dai gruppi. In caso di contraddizioni:

Esistono alcuni Ruoli predefiniti che possono essere utilizzati per attribuire un insieme predefinito di permessi ad un soggetto, ma tali ruoli possono essere modificati semplicemente cambiando l'impostazione rispetto ad un'azione.

Ogni modulo è caratterizzato da uno specifico insieme di azioni (view, edit, delete, download etc…), dipendenti dalle funzionalità che è in grado di gestire.
Esiste il particolare oggetto * (=Tutte le istanze) che consente di attribuire un permesso a tutte le istanze di quel modulo.
I permessi definiti sulle singole istanze prevalgono su quelli definito su * (Tutte le istanze)


Esempio di utilizzo dei permessi:

Utente ‘Pippo’, appartiene al gruppo ‘Utenti Generici’:
Pippo ha tutti i permessi che l’amministratore ha definito per il gruppo utenti generici (a cui appartiene), tuttavia l’amministratore può decidere che Pippo ha, all’interno di un'istanza di un modulo (uno o più) dei permessi in più o in meno rispetto al suo gruppo di appartenenza.
Quindi Pippo può, ad esempio, all’interno di quella istanza, visualizzare o modificare contenuti che gli altri Utenti Generici non possono fare o, viceversa, gli viene negata questa possibilità rispetto agli altri membri del gruppo.



indietro | avanti