CakePHP アプリに if ステートメントがありますが、期待どおりに動作しない理由がわかりません。
public function isAuthorized($user) {
if ($user['role'] === 'admin'){
return true;
}
if ((in_array($this->action, array('view', 'index')))&&($user['role'] === 'senior' || 'junior')) {
return true;
}
return false;
}
「エージェント」ロールを持つユーザーがいる場合、すべてのアクションが拒否されると思います。
代わりにこれを使用すると、すべてがバラ色になります。ブール値をTrueに設定する前に両方の引数をチェックしないのはなぜですか?
public function isAuthorized($user) {
if ($user['role'] === 'admin'){
return true;
}
if ($user['role'] == 'agent'){
return false;
}
if (in_array($this->action, array('edit', 'add', 'delete'))) {
if ($user['role'] == 'senior' || 'junior') {
return false;
}
}
return true;
}
何か案は?ありがとう