1

私のプロジェクトには、3つのタイプのユーザーがいます。管理者、メンバー、その他。管理者とメンバーの両方が実行できる特定の機能があります。

ルーティングを実行してadminを確認し、adminメソッドを呼び出す方法を知っています。しかし、ユーザータイプ間で関数を共有する方法がわかりません。

ヒントはありますか?

ベスト、R

4

2 に答える 2

1

Authコンポーネントを使用して簡単に行うことができます。Routing.prefixes = array('admin', 'manager');app / Config/core.phpファイルのコメントを解除します。

このリンクを使用して認証コンポーネントを設定します。これで、コントローラーのメソッドが2つのユーザーロール「admin」と「manager」に共通している場合、任意のロールのメソッドを定義して、別のメソッドで呼び出すのは簡単です。

UsersController.phpで言いましょう

public function admin_list()
{
  /*.... define here ..... */
}
public function manager_list()
{
    $this->admin_list();
}

この手法は、マネージャーユーザーロールのユーザーリストで他のものを表示する場合の管理にも役立ちます。

于 2012-07-25T04:38:00.547 に答える
0

AuthコンポーネントからisAuthorized()を使用します。ユーザーがテーブルユーザーにいるとしましょう。AppController.phpに次のように入力します。

public function isAuthorized($user){
     return true;
}

UsersControllerで、method1とmethod2を管理者とメンバーだけに表示し、他のメンバーには表示しないようにするとします。

public function isAuthorized($user){
     if(in_array($this->action, array('method1', 'method2'))){
          if($user['role'] != 'admin' || $user['role'] != 'user'){
               return false;
          }
     }
     return true;
}

そしてもちろん、AppControllerにAuthComponentを含めます。

public $components = array('Session', 'Auth');

ご不明な点がございましたら、お気軽にお問い合わせください。:)

于 2012-07-24T20:55:14.817 に答える