Перенаправьте зарегистрированных пользователей на страницу с ошибкой «у вас нет прав» в cakephp - PullRequest
1 голос
/ 18 февраля 2011

Когда пользователь входит в систему и пытается получить доступ к определенному действию, которое он не имеет права просматривать, пользователь перенаправляется на «/» (даже при определенных обстоятельствах вы можете получить циклическое поведение). Я искал решения этой проблемы, но ничего не нашел.

Я написал несколько строк в app_controller.php, чтобы перенаправить зарегистрированных пользователей на страницу с ошибкой («у вас нет прав доступа ...»), но я не уверен, что я испортил код.

Не могли бы вы мне посоветовать? Спасибо.

В app_controller.php:

var $components = array('Auth');

function beforeFilter() {
    $allowedActions = array_map('strtolower', $this->Auth->allowedActions);
    if (!($this->Auth->allowedActions == array('*') || in_array($this->action, $allowedActions))) {
        $_SERVER['HTTP_REFERER'] = Router::url(array('controller' => 'page', 'action' => 'error'));
    }

}

1 Ответ

1 голос
/ 18 февраля 2011

Вы можете попробовать использовать

$this->Auth->loginError = "LOGIN ERROR";
$this->Auth->authError = "AUTH ERROR";

в * app_controller.php * в сочетании с echo $session->flash('auth'); в вашем default.ctp представлении.

Другой способ - использовать Auth метод компонента isAuthorized и перенаправление в зависимости от его результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...