Sto costruendo un'applicazione Web utilizzando Symfony2. Ho implementato i moduli ACL e ha funzionato perfettamente, ma sono incappato in un problema quando cercavo di fare un pannello per gestire i diritti.Ottenere gli ACL per un altro utente rispetto a quello registrato in Symfony2?
Così ho avuto come utente che può creare un progetto e aggiungere "partecipanti" al suo progetto. I partecipanti possono avere tre diversi tipi di accesso che sono maschere dal costruttore di maschere MASK_VIEW
, MASK_EDIT
, MASK_OPERATOR
. Utilizzando il ProblematicAclManagerBundle
possiamo aggiungere facilmente l'accesso a questi utilizzando fare questo:
$this->aclManager->addObjectPermission($project, $mask, $user);
Il fatto è che quando si desidera modificare il progetto, devi essere in grado di elencare gli utenti con i loro diritti di accesso correnti. La funzione isGranted
può farti gli utenti giusti per l'utente loggato corrente, ma non per altri utenti. Rispetto alle funzioni addXXXX
in cui sono presenti tre argomenti, lo isGranted
ha solo due, l'oggetto protetto e la maschera. Pertanto non è possibile trovare il diritto per un altro utente con questa funzione.
Esiste un modo per ottenere i diritti di altri utenti incorporati? O devo costruire le mie query SQL per estrarre i dati dalle tabelle acl?
Thing con quello è che avrei dovuto creare un nuovo token che si estende TokenInterface. Quindi simulare l'utente come autenticato. È un po 'hacky ma funzionerebbe –