9

私が働いている場所では、ユーザーが複数のグループに属し、各グループが高度に知られていない一連のリソースにアクセスできるwebapp を設計しています。さらに、ユーザーはグループに出入りでき、グループはリソースへのアクセス権を取得したり失ったりする可能性があるため、権限付与システム全体が動的である必要があります。

Symfony2 と FOSUserBundle を使用しています。

ACL システムの仕組みは気に入っていますが、それを Group オブジェクトに適用する方法が見つかりませんでした。

Symfony でそのようなことをした人はいますか? または、他の方法で実装する方法について何か提案はありますか?

4

1 に答える 1

6

クックブックによると、UserSecurityIdentity の代わりに RoleSecurityIdentity を使用できます。私の理解では、あなたの役割はあなたのグループです。現在、同様の問題に取り組んでいます。それをもう少しやったら、これをいくつかのコードスニペットで更新しようとします。

しかし、今のところ見てみましょう: http://symfony.com/doc/current/cookbook/security/acl_advanced.html

編集:

私たちは別の方向に進んでおり、代わりに、コントローラーアクションシステムごとの許可でさらに進んでいます. したがって、すべてのコントローラー アクションには、注釈を使用してパーミッション名が割り当てられます。

#SomeDomain/SomeBundle/Controller/SomeController.php
/**
 * @Permissions(perm="some.name.for.the.node")
 */
 public function indexAction(){ ... }

次に、コントローラー関数が呼び出されたときにアクセス許可をチェックするサービスを含むアクセス許可バンドルがあります。管理者には、グループが持つ権限と個々のユーザーを管理できる GUI が与えられます。

私たちがやっていることに影響を与えたこの要点をチェックしてください: https://gist.github.com/1391850

これがあなたが探していた ACL システムではないことは承知していますが、私たちが行っていることを更新すると思いました。

于 2013-01-11T22:34:28.727 に答える