私が書いている CakePHP アプリケーションで、管理者と通常のユーザーを区別するための簡単な機能を書き込もうとしています。またはという名前のフィールドを持つようにusers
テーブルを変更しました。admin
0
1
では、次のようAppController.php
に$components
配列を設定しました。
public $components = array(
'Session',
'Auth' => array(
'authenticate' => array(
'Blowfish' => array(
'fields' => array('username' => 'email')
)
),
'loginRedirect' => array('controller' => 'pages', 'action' => 'home'),
'logoutRedirect' => array('controller' => 'pages', 'action' => 'home'),
'authorize' => array('Controller')
)
);
また、この方法:
public function isAuthorized($user) {
// Check if admin
if(isset($this->params['admin']) && $this->Auth->user('admin') == 1) {
echo "admin";
return true;
}
// Default deny
return false;
}
ページをロードすると、次のエラーが表示されます: (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.
. 何らかの理由で、上記のコードが無限のリダイレクトを引き起こしていますが、その理由はわかりません。
admin
また、管理者が のような URL にアクセスできるように、ルーティング プレフィックスを設定しました/admin/users/edit
。admin
そのページに移動すると、無限のリダイレクトが得られず、本来echo
あるべきように表示されます。
オンラインのチュートリアルを読み、Cake のドキュメントを読みましたが、それらはすべて無限リダイレクトで終わっているようです。管理者と通常のユーザーを区別し、それぞれの特定のアクションへのアクセスを拒否/許可できるように設定するにはどうすればよいですか?役割?