Permissions e ACL nel database

cancel
Showing results for 
Search instead for 
Did you mean: 
stefano_migliuc
Member II

Permissions e ACL nel database

Salve a tutti,
per un nuovo progetto basato su Alfresco 4.2.c ho necessità di valutare se estendere il sistema di permissions/roles/ACL, o ipotizzare un'altra soluzione.
Ho studiato la documentazione sull'argomento e i vari file citati: public-services-context.xml, public-services-security-context.xml, permissionDefinitions.xml
Prima di decidere se sviluppare un'estensione con permessi personalizzati e relativo strato di security, o se ipotizzare un'altra soluzione, vorrei però capire dove vengono memorizzate le permissions, o meglio l'acl relativa ad un nodo.
<!–break–>
Come test, tramite l'interfaccia di share, ho invitato un singolo utente ad un contenuto (document, non folder) attribuendogli un ruolo.
Immaginavo di trovare queste informazioni nel database a partire dal nodo del contenuto al quale ho invitato l'utente (alf_node.acl_id),
ma non è così.

Trovo:
- alf_node.acl_id = '67'
- alf_access_control_list.id = '67'

Ma poi NON trovo:
- alf_acl_member.acl_id = '67'

Cosa mi sfugge?
Perché non trovo il record corrispondente in alf_acl_member?
Forse nel record della tabella alf_access_control_list individuato tramite id = '67' bisogna considerare il campo acl_id che sembra l'identificativo di qualcosa scritto nel repository (sembrano tutti identificativi di nodi)?
Ma se fosse così, perché con il node browser non lo trovo?

Saluti
5 Replies
davidciamberlan
Alfresco Employee

Re: Permissions e ACL nel database

Ciao,

non ho la risposta alla tua domanda ma mi permetto di sconsigliarti di andare ad agire direttamente sul database.
Ci sono molti ottimi motivi per non farlo, non sto qui ad elencarli (ma se vuoi te ne indico alcuni).

Se però vuoi solo soddisfare una tua -leggittima e sana- curiosità, posso dirti che, essendo Alfresco un prodotto open source, forse la via più breve che puoi percorrere è quella di andare a trovare nel codice sorgente il metodo che fa l'azione che descrivi e vedere come agisce e quali chiamate inoltra al database.

Ciao

stefano_migliuc
Member II

Re: Permissions e ACL nel database

Ciao David,
sono perfettamente d'accordo con te sull'evitare azioni di scrittura sul database.

Resta il problema di comprendere il meccanismo di cui sopra, sicuramente per una lecita esigenza di curiosità "scientifica", e soprattutto per valutare strategie di estensione e/o integrazione.

Spero qualcuno abbia la risposta… :-)

Buon lavoro
stefano_migliuc
Member II

Re: Permissions e ACL nel database

dimenticavo….
naturalmente prima di scrivere sul forum ho esaminato il codice sorgente (spendendoci anche parecchio tempo vista l'importanza della cosa), ma proprio non sono riuscito a capire!
fcorti
Alfresco Employee

Re: Permissions e ACL nel database

Aggiungo a supporto di quanto dite, giusto perché potrebbe essere di aiuto.

Personalmente in passato ho provato a fare una cosa simile a quanto vorrebbe Stefano ma mi sono fermato quando ho trovato negli FTL del client Share (quindi "dentro" Alfresco Share) diversi punti dove le ACL sono cablate negli script proprio con degli 'if'.

Quindi… aggiungere custom role con ACL personalizzate è supportato tranquillamente dal "motore Alfresco" ma il client Share (che a più riprese Alfresco annuncia essere un esempio di client) non è detto che gestisca tutto in modo trasparente.

Ancora… non è detto che quello che vuoi fare, Stefano, sia correttamente gestito dal client.
Se invece pensi di utilizzare il custom role da un client che sviluppi te allora, penso avrai vita più facile.
stefano_migliuc
Member II

Re: Permissions e ACL nel database

Sì, il progetto prevede lo sviluppo di un nostro client fatto con RAP.
Grazie comunque del contributo, stavo anch'io guardando la gestione delle permissions lato client in Share per farmi un'idea.