kombinuję dzisiaj z Zend_Auth i coś mi nie idzie... Chciałbym, żeby oprócz standardowego sprawdzania nazwy i hasła w bazie spełniony był również warunek 'active = TRUE'.
Mam kod z manuala, ale nie działa, logują się nieaktywowani użytkownicy...
Niżej mój kod. Wszystko jest ok, tylko zupełnie ignorowany jest warunek... Będę wdzięczny za pomoc.
<?php class LoginController extends Main_Controller_Action { function indexAction() { if ($this->_request->isPost()) { $f = new Zend_Filter_HtmlEntities(ENT_QUOTES); $username = $f->filter($this->_request->getPost('user')); $password = sha1($f->filter($this->_request->getPost('upasid'))); { $this->view->message = 'Nie podano nazwy użytkownika.'; } else { $db = Zend_Registry::get('db'); $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users', 'name', 'password', ' AND active = TRUE'); //$authAdapter->setTableName('users'); //$authAdapter->setIdentityColumn('name'); //$authAdapter->setCredentialColumn('password'); $authAdapter->setIdentity($username); $authAdapter->setCredential($password); $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($authAdapter); switch ($result->getCode()) { case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND: //nieistniejący użytkownik $this->view->message = 'Użytkownik o podanym loginie nie istnieje.'; break; case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID: //niepoprawne hasło $this->view->message = 'Nieprawidłowe hasło.'; break; case Zend_Auth_Result::SUCCESS: //sukces if ($result->isValid()) { $data = $authAdapter->getResultRowObject(null, 'password'); $auth->getStorage()->write($data); $this->_redirect('somewhere'); }; break; default: //to do break; }; }; }; } } ?>