Я пытаюсь создать просто страницу входа. Я хочу, чтобы проверка на этой странице так, что, когда пользователь нажимает логин, сайт проверяет, что в активированной базе данных пользователей установлено значение 1, если нет, они не могут войти в систему. Я все еще очень новичок в cakephp и стараюсь быстро подобрать, поэтому мне жаль, если это простой вопрос начинающего.CakePHP 2.0 Проверка учетной записи
здесь проверка в моей модели пользователя
public $checkActive = array(
'activated'=>array(
'rule'=>array('equalTo', '0'),
'message'=>'The account must be activated, please check your email.'
));
здесь функция Войти в моей UsersController
public function login() {
$this->set('title_for_layout', 'Individual Registration');
$this->set('stylesheet_used', 'style');
$this->set('image_used', 'eBOXLogo.jpg');
if ($this->request->is('post')){
if ($this->request->data['User']['password'] == 'qazwsx'){
if ($this->Auth->login()){
if (0 === $this->User->find('count',array('conditions'=>array('enabled'=>1,'login'=> $username)))) {
$this->Session->setFlash('Sorry, your account is not validated yet.');
}
$this->Auth->user('id');
$this->redirect($this->Auth->redirect('eboxs/home'));
}
}
else {
$this->Session->setFlash('Username or password is incorrect');
}
}else{
$this->Session->setFlash('Welcome, please login');
}
}
вот моя beforeLogin функция в приложении UsersController
public function beforeLogin(){
if(isset($this->data['User']['password'])){
$this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
}
return true;
}
контроллер
class AppController extends Controller {
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth'=>array(
'loginRedirect'=>array('controller'=>'users', 'action'=>'login'),
'logoutRedirect'=>array('controller'=>'users', 'action'=>'login'),
'authError'=>"You can't access this page",
'authorize'=>array('Controller')
)
);
public function isAuthorized($user){
return true;
}
public function beforeFilter(){
$this->Auth->allow('index','view');
$this->set('logged_in', $this->Auth->loggedIn());
$this->set('current_user',$this->Auth->user());
}
Я понимаю, что в моем контроллере нет вызова для проверки, но с моей другой проверкой, такой как имя пользователя, уникально, мне не нужно было его называть.
вкратце на тот момент, когда любой пользователь может войти в мою страницу, я пытаюсь сделать так, чтобы только те, у кого есть 1 в активированном поле в таблице пользователей, могут войти в систему.
Почему вы проверить пароль вручную? Пожалуйста, разместите свою настройку компонента Auth (должен быть в вашем AppController) – Dunhamzzz
отправил контроллер приложения – user1393064