私はSymfony2を使ってWebアプリケーションを構築しています。私はACLモジュールを実装していましたが、完全に機能しましたが、権利を管理するためにpannelを作成しようとすると問題が発生しました。Symfony2で現在ログインしているユーザー以外のユーザーのACLを取得していますか?
私はプロジェクトを作成し、彼のプロジェクトに「参加者」を加えることができるユーザーを得ました。参加者は、マスクビルダーMASK_VIEW
、MASK_EDIT
、MASK_OPERATOR
からのマスクである3つの異なるアクセスタイプを持つことができます。 ProblematicAclManagerBundle
を使用すると、我々は簡単にこれをやって使用して、これらへのアクセスを追加することができます。
$this->aclManager->addObjectPermission($project, $mask, $user);
事は、プロジェクトを編集したいとき、あなたは彼らの現在のアクセス権を持つユーザーの一覧を表示できるようにするということです。機能isGranted
は、現在ログインしているユーザーのユーザー権限を取得しますが、他のユーザーは取得できません。引数が3つあるaddXXXX
関数と比較して、isGranted
には、保護されたオブジェクトとマスクが2つしかありません。したがって、この機能を持つ別のユーザーの権利を見つけることはできません。
他のユーザーのビルトインの権利を取得する方法はありますか?または、自分のSQLクエリを構築してaclテーブルからデータを抽出する必要がありますか?
事は、私はTokenInterfaceを拡張する新しいトークンを作成しなければならないということです。その後、認証されたユーザーを偽装します。ちょっとハッキリですが、うまくいくでしょう –