2016-05-17 19 views
2

リソースへの部分アクセスを提供するライブラリ/ソリューションはありますか?そのような権限制御はどのように呼び出されますか?PHPの部分アクセス制御

ほとんどのACLライブラリは完全にアクションを拒否/許可している: "部分的" 権限がなければならない

user.create user.update user.show

しかし、どのような場合。 何かのように:

  1. あなただけの役割ゲストまたはモデレータアクティブユーザーを見ることが許可されています。
  2. あなたは役割デザイナーだけ彼の電話メールでユーザーを編集することが許可されています。

最初の例では、このようになります。

許可:

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 

答えて

0

私が知る限り、ほとんどのライブラリでは、クラスを拡張するオプションがあります。だから、

class myuser extends user{ 

のように、あなたはゲストまたはモデレータのために好きな役割や権限を与えることができるこの方法をクラスのユーザーを拡張することができます。 Codeigniter、Zend、その他の優れたフレームワークを使用することができます。

+0

私は良い例を取っていないようです。私の問題はユーザーに役割を提供することではなく、アクションを許可または拒否するよりも差別化されたアプローチを可能にする権限ライブラリを探しています。私の例では、アクティブで、役割のゲストまたは司会者に属するユーザーを表示する権限があります。活動していない女性ユーザーなどを見ることを許可する別の許可があるかもしれません。 – user3333137

0

Zend Framework 2では、ZfcUserモジュールをbjyauthorizeモジュールと組み合わせることができます。そして、あなたはいくつかの設定で必要となるでしょう。

+0

まだZend 2を使用していませんが、このモジュールは基本的なZend ACLよりも有望です。これが私の問題を解決するかどうか見てください。 – user3333137

+0

提供する必要があるユーザーとコンテンツに対して、きめ細かなアクセス許可を定義できます。これは非常に便利です。 – ThierryB