私のプロジェクトには、3つのタイプのユーザーがいます。管理者、メンバー、その他。管理者とメンバーの両方が実行できる特定の機能があります。
ルーティングを実行してadminを確認し、adminメソッドを呼び出す方法を知っています。しかし、ユーザータイプ間で関数を共有する方法がわかりません。
ヒントはありますか?
ベスト、R
私のプロジェクトには、3つのタイプのユーザーがいます。管理者、メンバー、その他。管理者とメンバーの両方が実行できる特定の機能があります。
ルーティングを実行してadminを確認し、adminメソッドを呼び出す方法を知っています。しかし、ユーザータイプ間で関数を共有する方法がわかりません。
ヒントはありますか?
ベスト、R
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();
}
この手法は、マネージャーユーザーロールのユーザーリストで他のものを表示する場合の管理にも役立ちます。
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');
ご不明な点がございましたら、お気軽にお問い合わせください。:)