Skip to content

Instantly share code, notes, and snippets.

@eminetto
Created May 23, 2011 19:32
Show Gist options
  • Save eminetto/987378 to your computer and use it in GitHub Desktop.
Save eminetto/987378 to your computer and use it in GitHub Desktop.
public function indexAction() {
    //busca os posts
    $posts = new Posts; //cria um novo objeto Posts
    $this->view->data = $posts->fetchAll();
    //adiciona o formulario
    $form = new LoginForm();
    //verifica se tem dados enviados
    if ($this->_request->isPost()) {
        $formData = $this->_request->getPost();
        //se o formulário está válido
        if ($form->isValid($formData)) {
            //pega uma instancia e cria caso não exista
            $auth = Zend_Auth::getInstance();
            $authAdapter = new Zend_Auth_Adapter_DbTable(
                Zend_Registry::get('db'),//conexao com o banco, salva no bootstrap
                'users', //nome da tabela
                'username', //campo com o login
                'password', //campo com a senha
                'MD5(?)' //tratamento a ser dado a senha antes de comparar
            );
            //configura o usuário/senha
            $authAdapter->setIdentity($formData['username'])->setCredential($formData['password']);
            //tenta fazer a autenticação
            $result = $auth->authenticate($authAdapter);
            //verifica o resultado
            $session = Zend_Registry::get('session');
            switch ($result->getCode()) {
                case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
                    $session->erro = 'Login não existe';
                    $form->populate($formData);
                    break;
                case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
                    $session->erro = 'Senha inválida';
                    $form->populate($formData);
                    break;
               
                case Zend_Auth_Result::SUCCESS:
                    $this->_redirect('/admin/admin');
                    break;
                default:
                    /** em caso de outro tipo de falhas **/
                    break;
            }  
        }
        else { // Mostra os erros e popula o form com os dados
            $form->populate($formData);
        }
    }
    $this->view->form = $form;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment