3

私は3つのセクションが欲しいCakePHPでサイトを構築しています:

  • 公共の場
  • ユーザーエリア
  • 管理エリア

私はのように見えるroutes.phpでプレフィックスルーティングをセットアップしました

Router::connect('/user/:controller/:action/*', array('prefix' => 'user', 'user' => true));
Router::connect('/admin/:controller/:action/*', array('prefix' => 'admin', 'admin' => true));

まだログインしておらず、ユーザータイプが「通常」の場合、user_プレフィックスを持つアクションはすべてログイン画面にリダイレクトされ(副次的な質問:ユーザーは通常にできますか:P)、admin_プレフィックスを持つアクションもリダイレクトされますが、必要です管理者のユーザー タイプ。

私は Auth コンポーネントを使おうとし始めましたが、ACL が過剰に思えるのに対し、柔軟性がないように思えます。私が望むものを達成するための最良の方法について、誰かアドバイスをいただけますか?

4

1 に答える 1

7

Auth コンポーネントは、これに対して十分に柔軟でなければなりません。

beforeFilter()次のようにすることができます。

//  I think it's params['prefix'], might be different
//               vvvvvvvvvvvvvvvv
if (isset($this->params['prefix'])) {
    $this->Auth->userScope = array('User.type' => $this->params['prefix']);
}

isAuthorized()さらに高度な認証を行うために、必要に応じてモデルまたはコントローラーに関数を追加することもできます。http://book.cakephp.org/1.3/en/The-Manual/Core-Components/Authentication.html#authcomponent-variablesを参照してください。

于 2009-12-11T06:32:53.963 に答える