0

嘿,试图在一个名为“已激活”的布尔字段上进行验证检查。基本上,如果布尔值为 1,则该帐户处于活动状态,这意味着他们可以登录。如果是其他任何内容,则用户无法登录。

这是我对用户模型的检查:

public $checkActive = array(
        'activated'=>array(
                'rule'=>array('equalTo', '1'),
                'message'=>'The account must be activated, please check your email.'
            ));

不幸的是,用户可以在他们不应该登录的时候登录。

4

1 回答 1

0

我相信模型中的验证仅在保存数据时进行测试。

如果您正在使用身份验证组件,您可以定义一个“范围”,这是一个必须等​​于 true 才能使用户获得身份验证的条件。

'scope' => array('User.activated' => 1)

更多信息和示例:http ://book.cakephp.org/2.0/en/core-libraries/components/authentication.html )

如果您编写了自己的身份验证,则可以将条件添加到当前的 find 语句中。

$this->User->find('all', array('conditions' => array('username' => $username, 'password' => $password, 'activated' =>1); 

希望这能回答你的问题。

于 2012-05-24T04:01:11.750 回答