我正在为工作中的Symfony2项目制作实体。
我正在尝试建立一个系统来控制对组织(公司)和角色的某些资源的访问。总而言之,所有公司的角色都是相同的,但公司可能会为某个角色提供资源,而另一个公司可能不想这样做。
至于资源,它们代表一些行动和内容,例如创建它,版本等等......
我尝试用以下实体解决这个问题。它代表了我的三个实体组织,角色和资源之间的一对一关系。
我想知道这种关系是否可能/好,或者是否有另一种方法来管理资源。
/**
* @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;
关于如何解决这个问题,你有什么建议吗?
是否有其他/更好的方式来表示资源(实际上是页面和链接)并管理其访问权限?
答案 0 :(得分:1)
虽然这可能是非常有效的方法,但你真的会重新发明轮子。
Symfony2已全部实施为“访问控制列表”或( ACL ):
http://symfony.com/doc/current/cookbook/security/acl.html
检查出来......我认为它涵盖了你需要的一切......