2010-12-31 3 views
6

Я хотел бы проверить, активирована ли учетная запись пользователя при входе в систему, но компонент Auth для торта заботится о входе в систему, так как я не знаю, как управлять. Торт в основном использует пустую функцию входа, и я понятия не имею, как проверить значение User.active.cakephp пользовательские условия входа

Заранее спасибо

ответ

11

У AuthComponent есть свойство для установки дополнительных условий точно так же, как это называется $ userScope.

Просто включите эту строку в beforeFilter) настройки блока (Auth:

$this->Auth->userScope = array('User.active' => true); 

Примечание: выше относится к Cake 1.x. Для использования 2.x:

$this->Auth->scope = array('User.active' =>true); 

Тогда вы можете оставить ваш метод Логин пустым, и AuthComponent добавит это дополнительное условие при проверке подлинности посетителя.

Вы можете увидеть все дополнительные свойства здесь: http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#configuring-authentication-handlers

Если вы не включили этот дополнительный объем, то неактивные пользователи будут по-прежнему иметь возможность войти в систему и вы должны зарегистрировать их в вашей login() после проверки.

0

На контроллере Users, или там, где вы хотите разместить его (действие, что форма Логин ссылки):

function login() { 
    if ($this->Session->read('Auth.User')) { 
     $active = $this->Auth->user('active'); 
     if ($active) { 
      //(do stuff) 
     } 
     else { 
      //(do other stuff) 
     } 
    } 
} 

Это предполагает, что есть «активный» столбец в вашей таблице пользователя, который содержит либо true, либо false (или 1 или 0). $ this-> Auth-> user() позволяет вам получить доступ к текущим данным пользователя. Более подробная информация здесь: http://book.cakephp.org/view/1264/user

+0

Спасибо за ваш ответ, но почему-то это не сработало для меня, и в любом случае мне не нравится идея разрешить пользователю войти в систему, а затем отключить его, если он неактивен. Но все равно спасибо ;) – Elwhis

Смежные вопросы