CakePHP、ログイン処理はAuthComponentにおまかせ、ってのが定石だが、そういえば、ログインできる条件がある場合はどうしたらいいだろう?
ログインIDとパスワードがあって、他にそのメンバーのステータスが「有効」な時のみログインできる、というような場合だ。
結論、 scope というのを追加すればよい。
app/Controller/LoginController.php
public $components = array('Paginator', 'Session', 'Auth' => array(
'authenticate' => array(
'Form' => array(
'userModel' => 'Member',
'fields' => array('username' => 'login_id', 'passeord' => 'password'),
'scope' => array('status' => 1)
)
)
));