私はこれにかなりの量を掘り下げましたが、最良の方法が何であるかを理解することができませんでした.
ログインする全員が「従業員」、「スーパーバイザー」、または「マネージャー」のいずれかである従業員管理システムがあります。
現時点では、ランクに応じてさまざまなバージョンのページを問題なく表示しています。ただし、通常の「従業員」は、手動で URL を入力すると、アクセスできないページにアクセスできます。CakePHP のドキュメントによると、デフォルトではすべてのページが制限されており、各ページへのアクセスを許可する必要があります。しかし、私はアクセスを許可しておらず、すべてのページにアクセスできるようです。
ページにアクセスするための最良の方法は何ですか? ありがとう!
編集: AppController の構成は次のとおりです。
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'userModel' => 'Employee'
)
),
'loginAction' => array(
'controller' => 'employees',
'action' => 'login',
//'plugin' => 'users'
),
'loginRedirect' => array('controller' => 'employees', 'action' => 'dashboard'),
'logoutRedirect' => array('controller' => 'employees', 'action' => 'login'),
'authError' => 'You must be logged in to see that.'
)
);
そして、常に false を返すように設定されている isAuthorized() メソッドがあります。
public function isAuthorized($user = null) {
// Any registered user can access public functions
/*if (empty($this->request->params['admin'])) {
return true;
}*/
// Only admins can access admin functions
/*if (isset($this->request->params['admin'])) {
return (bool)($user['role'] === 'admin');
}*/
// Default deny
return false;
}