2012-05-22 106 views
0

我正在製作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; 

對於如何解決這個問題你有什麼建議嗎?

是否有另一種/更好的方式來表示資源(實際上是頁面和鏈接)並管理其訪問?

回答

1

雖然這可能是非常有效的方法,但您真的可以重新發明輪子。

Symfony2中已說明了一切已經實現爲 '訪問控制列表' 或(ACL):

http://symfony.com/doc/current/cookbook/security/acl.html

檢查出來....我認爲它涵蓋了你需要的一切.. 。

+0

謝謝你的回答。我已經閱讀了關於ACL的一些內容,但是我看不到它是否真正覆蓋了我需要的內容。我會看看它,謝謝! –