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 に答える