Questa è una vecchia versione del documento!
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 il permesso risultante viene determinato in base al peso.
Non esistono quindi Ruoli predefiniti nel sistema ed è possibile creare dinamicamente i Ruoli che meglio rispondono alle esigenze di gestione semplicemente modificando l’insieme di permessi attribuiti ad un soggetto.
Esempio di ruolo/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.
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.
indietro | avanti