public function signInAction() { $request = $this->getRequest(); $signInForm = new Rabotal_Form_SignIn(); if ($request->isPost() && $signInForm->isValid($request->getPost())) { $values = $signInForm->getValues(); $options = $this->getInvokeArg('bootstrap')->getOption('secure'); $authAdapter = new Zend_Auth_Adapter_DbTable($this->getInvokeArg('bootstrap')->getResource('DB'), 'users', strpos($values['login'], '@') !== FALSE ? 'email' : 'username', 'password', 'sha1(?)'); $auth = Rabotal_Auth::getInstance(); $authAdapter->setIdentity($values['login'])->setCredential($options['salt'] . $values['password']); if ($auth->authenticate($authAdapter)->isValid()) { $userData = $authAdapter->getResultRowObject(array('id', 'username', 'email')); $auth->getStorage()->write($userData); if ($values['rememberme']) { Rabotal_Auth::remember($userData); } $this->_redirect('/'); } $signInForm->addErrorMessage('Имя пользователя или пароль введены не верно. Пожалуйста, повторите попытку.'); } $this->view->signInForm = $signInForm; }