Если у вас уже запущена и работает вся система аутентификации, почему бы вам просто не следовать принципу KISS и отозвать его пароль или не изменить имя пользователя? Если они больше не могут проходить аутентификацию в вашей системе, как раньше, они могут сделать вывод, что они забанены.
Если этого недостаточно, вы можете добавить код ниже.
function login() {
if ($this->Session->read('Auth.User')) {
$this->Session->setFlash('You are alreadylogged in!~~~~~~~~~~~');
}
$this->Session->setFlash('You have been banned!');
$this->redirect(array('controller'=>'users','action'=>'index'));
}
Редактировать 1: Для более динамичного подхода, как вы указали в своем комментарии, вы можете проверить столбец is_banned рассматриваемой пользовательской записи в вашем UsersController::beforeFilter()
и соответственно настроить ваше флеш-сообщение. Также сделайте перенаправление на основе результата $this->Session->read('Auth.User.is_banned')
. Возможно, вы захотите взглянуть на вывод <?php debug $this->Session->read('Auth.User) ?>
перед тем, как приступить к решению проблемы.
Редактировать 2: Моя вина. Вы можете хранить is_banned где-нибудь в сеансе через $this->Session->write(...)
. После прочтения is_banned = true
вы можете выйти из системы.