所以我有一个案例,我有一个动作(基于某些条件)会翻转到同一个控制器中的另一个动作。
现在,初始操作允许具有给定角色(教练或培训师)的人员执行,但后续操作仅允许教练执行。
但是,因为他们没有直接访问第二个操作(仅通过中间操作),所以 Auth 组件不会阻止它触发。这是一些代码:
public function isAuthorized($user) {
switch($this->action) {
case "bulkAction":
if ($user['role'] == ('coach' || 'trainer') ) {
return true;
}
break;
case "bulkDelete":
if ($user['role'] == 'coach') {
return true;
}
break;
}
return parent::isAuthorized($user);
}
public function bulkAction() {
switch($this->request->data['Action']) {
case "delete":
$this->bulkDelete();
break;
}
}
同样,当 bulkAction 将数据发送到 bulkDelete 操作时,Auth 似乎完全被绕过了,并且该操作通过了。如何确保其他操作调用的操作仍会根据控制器的 isAuthorized 回调进行检查?