Doctrina: ¿Relación uno a uno?
Frecuentes
Visto 453 veces
0
Estoy creando entidades para un proyecto de Symfony2 en el trabajo.
Estoy tratando de hacer un sistema que controle el acceso a ciertos recursos en función de una organización (una empresa) y de un rol. En resumen, los roles son los mismos para todas las empresas, pero una empresa puede hacer que un recurso esté disponible para un rol, mientras que otra puede no quererlo.
En cuanto a los recursos, representan algunas acciones y contenidos, como la creación de esto, la edición de aquello, etc.
Intenté resolver este problema con la siguiente entidad. Representa una relación uno a uno entre mis tres entidades Organización, Rol y Recurso.
Quería saber si ese tipo de relación era posible/buena, o si hay otra forma de administrar los recursos.
/**
* @ORM\Entity
*/
class Organisation_Role_Resource
{
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Organisation")
*/
private $organisation;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Role")
*/
private $role;
/**
* @ORM\Id
* @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Resource")
*/
private $resource;
¿Tiene algún consejo sobre cómo resolver este problema?
¿Hay otra/mejor manera de representar los recursos (que son, de hecho, páginas y enlaces) y administrar su acceso?
1 Respuestas
1
Si bien este podría ser un enfoque bastante válido, realmente estaría reinventando la rueda.
Symfony2 ya lo tiene todo implementado como 'Listas de control de acceso' o (ACL):
http://symfony.com/doc/current/cookbook/security/acl.html
Échale un vistazo.... Creo que cubre todo lo que necesitas...
contestado el 22 de mayo de 12 a las 15:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php symfony doctrine entities database-relations or haz tu propia pregunta.
Gracias por su respuesta. Ya había leído algunas cosas sobre el ACL, pero no podía ver si realmente cubría lo que necesitaba. No obstante lo investigaré, gracias! - gabriel theron