リソースへの部分アクセスを提供するライブラリ/ソリューションはありますか?そのような権限制御はどのように呼び出されますか?PHPの部分アクセス制御
ほとんどのACLライブラリは完全にアクションを拒否/許可している: "部分的" 権限がなければならない
user.create user.update user.show
しかし、どのような場合。 何かのように:
- あなただけの役割ゲストまたはモデレータでアクティブユーザーを見ることが許可されています。
- あなたは役割デザイナーだけ彼の電話とメールでユーザーを編集することが許可されています。
最初の例では、このようになります。
許可:
user.show
特権:
status => active && role => guest || moderator
及び第二:
許可:
user.edit
特権:
editable => phone, mail
更新:
私の問題をより明確にするために、私は(どのように表示するには、この使用例を追加しました私の考えでは)それはのように見えるかもしれません。
// global access
if($user->can('user.show')){
// get the privileges provided by the permissions
$filter = $user->getPrivilegesFor('user.show');
// use the privileges to filter the (database)query
// (using the example above the filter should restrict to active guests and moderators)
$result = $repo->getUsers($filter);
}else{
// access denied
}
// use the result to fill the view
私は良い例を取っていないようです。私の問題はユーザーに役割を提供することではなく、アクションを許可または拒否するよりも差別化されたアプローチを可能にする権限ライブラリを探しています。私の例では、アクティブで、役割のゲストまたは司会者に属するユーザーを表示する権限があります。活動していない女性ユーザーなどを見ることを許可する別の許可があるかもしれません。 – user3333137