0

仕事で Symfony2 プロジェクトのエンティティを作成しています。

組織 (会社) と役割の機能で特定のリソースへのアクセスを制御するシステムを作成しようとしています。要約すると、役割はすべての会社で同じですが、ある会社がリソースを役割に使用できるようにする場合と、別の会社が望まない場合があります。

リソースに関しては、これの作成、あれの編集など、いくつかのアクションとコンテンツを表します...

この問題を次のエンティティで解決しようとしました。これは、組織、役割、およびリソースという 3 つのエンティティ間の 1 対 1 の関係を表しています。

そのような関係が可能かどうか、またはリソースを管理する別の方法があるかどうかを知りたかったのです。

/**
 * @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;

この問題を解決する方法について何かアドバイスはありますか?

リソース (実際にはページとリンク) を表現し、それらのアクセスを管理する別の/より良い方法はありますか?

4

1 に答える 1

1

これは非常に有効なアプローチかもしれませんが、実際に車輪の再発明を行うことになります。

Symfony2には、すべてが「アクセス制御リスト」または(ACL)としてすでに実装されています。

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

それをチェックしてください....私はそれがあなたが必要とするすべてをカバーしていると思います...

于 2012-05-22T14:27:38.737 に答える