Symfony2: consejos sobre la implementación de roles por usuario y permisos de empresa

Estoy en el proceso de evaluar Symfony2 para un proyecto totalmente nuevo. Uno de los requisitos centrales es que; Un usuario puede estar asociado con muchas empresas y cada una de esas asociaciones puede tener un conjunto diferente de permisos identificados por un rol.

¿Alguien ha experimentado la implementación de algo similar o una perspectiva sobre cómo se podría lograr esto con el sistema ACL de Symfony2?

Recibiré agradecido cualquier consejo.

preguntado el 31 de julio de 12 a las 13:07

1 Respuestas

Llegué demasiado tarde al juego, pero tal vez esto ayude a alguien más.

http://brentertainment.com/2012/02/28/contextualizing-your-symfony2-application-with-the-service-container/

En resumen, puede usar el votante personalizado, luego aprovechar el segundo objeto que puede pasar al votante y usarlo para contextualizar su verificación de seguridad de esta manera

public function vote(TokenInterface $token, $object, array $attributes)
     {
         if ($this->supportsClass($object) && $company = $this->container->get('context.company')) {
             foreach ($attributes as $attribute) {
                 if ($this->supportsAttribute($attribute)) {
                     if ($company == $object->getCompany()) {
                         return VoterInterface::ACCESS_GRANTED;
                     }
                     return VoterInterface::ACCESS_DENIED;
                 }
             }
         }

         return VoterInterface::ACCESS_ABSTAIN;
     }
 } 

Respondido 05 ago 14, 15:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.