Sono un po 'sconcertato dal modo in cui gli elenchi di controllo degli accessi sono implementati in Symfony2.Come implementare ACL ruolo/risorse in Symfony2
In Zend Framework (versioni 1 & 2), un elenco di risorse e un elenco di ruoli sono definiti e ogni ruolo viene assegnato un sottoinsieme delle risorse è consentito l'accesso. Le risorse e i ruoli sono quindi il vocabolario principale dell'implementazione ACL, che non è il caso in Symfony2, dove solo la regola dei ruoli.
In un database di applicazioni legacy, ho tabelle che definiscono un elenco di ruoli, un elenco di risorse e un elenco di risorse consentite per ciascun ruolo (relazione molti-a-molti). Ad ogni utente viene assegnato un ruolo (admin, super admin, editor e così via).
Ho bisogno di fare uso di questo database in un'applicazione Symfony2. mie risorse simile a questa: ARTICLE_EDIT, ARTICLE_WRITE, COMMENT_EDIT, ecc
mio User
entità in Symfony implementa l'interfaccia Symfony\Component\Security\Core\User\UserInterface
e quindi ha un metodo di getRoles)
.
Intendo utilizzare questo metodo per definire le risorse consentite, il che significa che utilizzo i ruoli come risorse (intendo che le cosiddette risorse in Zend Framework sono chiamate ruoli qui).
Confermate che dovrei usare questo metodo?
Ciò significa che non mi interessa più il ruolo (admin, editor, ...) di ciascun utente, ma solo le sue risorse.
Vorrei quindi utilizzare $this->get('security.context')->isGranted('ROLE_ARTICLE_WRITE')
nei miei controller.
È questo il modo giusto per farlo e non sarebbe un modo eluso per utilizzare i ruoli in Symfony?