Visualizzazione dei soli record attribuiti a utenti distinti

Salve Eugenio,

nella mia applicazione ho 3 gruppi (proprietari, agenzie, agenti) con circa 100 utenti in totale;

1 proprietario
12 agenzie
85 agenti


Il proprietario è l'unico ad avere tutti i permessi in quanto il solo a dover inserire, modificare e cancellare le pratiche, le agenzie e gli agenti invece devono poter solo visualizzare.

Avrei bisogno però di queste due modifiche;

- ogni agente deve visualizzare solo i record che il proprietario gli attribuisce (ogni agente ha un proprio account sotto il gruppo Agenti)

- ogni agenzia deve visualizzare solo i record che il proprietario attribuisce alla propria agenzia e di conseguanza agli agenti della propria agenzia (ogni agenzia ha un proprio account sotto il gruppo Agenzie).

Premetto ovviamente che ogni pratica inserita dal proprietario ha i rispettivi campi "Agenzia" e "Agente".


In sintesi:

dovrei far in modo che le agenzie non vedano i record attribuiti alle altre agenzie e che gli agenti non vedano i record attributi agli altri agenti.


Ho fatto vari tentativi ma purtroppo non sono arrivato a niente, valuto quindi ogni soluzione mi voglia gentilmente suggerire.
 

eugenio

Administrator
Staff member
Buongiorno,
al momento non è possibile gestire questo caso con le feature built-in di DaDaBIK, o meglio lo è solo in parte.

La gestione dei permessi "record-level" viene infatti gestita attraverso il campo di tipo ID_user e questo campo viene compilato automaticamente durante l'inserimento, determinando la proprieta' del record; quello che potrebbe fare (non ho testato) è eventualmente rendere questo campo editable dal proprietario, che potrebbe inserire direttamente a mano lo username dell'agente. Questo probabilmente risolverebbe il suo problema ma solo per i singoli agenti (non potrebbe assegnare un record ad un'intera agenzia).

Saluti,
 

eugenio

Administrator
Staff member
Non direttamente, cioè non senza modificare il codice di DaDaBIK.

Potrebbe impostare nel codice di dadabik, nel file include/common_start.php, due variabili che memorizzino l'id dell'agente e l'id dell'agenzia e poi utilizzare queste variabili nella costruzione della sua query. Non è una procedura banalissima, comunque tempo fa avevo pubblicato una soluzione a un problema molto simile qua:

https://dadabik.com/forum/read.php?1,18844,19023

provi a vedere.

Saluti,
 

eugenio

Administrator
Staff member
Buongiorno,
probabilmente con il nuovo sistema di filtri row-level disponibile in dadabik 9.1 è possibile risolvere il problema di cui sopra.
Qua il video tutorial relativo:

https://www.youtube.com/watch?v=Q7aH7VP5rlc&t=1s

Saluti,
 
Top