public function ativarAction()
 {
     $hash = $this->getRequest()->getParam('hash');
     /**
      * busca dados da autenticacao
      */
     $modelAutenticacao = new Model_DbTable_Autenticacao();
     $autenticacao = $modelAutenticacao->getByField('autenticacao_hash_ativar', $hash);
     if (!$autenticacao) {
         $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                 Houve um problema durante a validação. 
                 Gentileza fazer contato informando o problema.
             '));
         $this->_redirect("/contato");
     }
     /**
      * altera a ativacao da autenticacao
      */
     try {
         $dadosUpdateAutenticacao = array('autenticacao_ativo' => 1, 'autenticacao_hash_ativar' => null);
         $where_update_autenticacao = $modelAutenticacao->getDefaultAdapter()->quoteInto("autenticacao_hash_ativar = ?", $hash);
         $modelAutenticacao->update($dadosUpdateAutenticacao, $where_update_autenticacao);
         /**
          * autentica e redireciona 
          */
         $modelUsuario = new Model_DbTable_Usuario();
         $salao = $modelUsuario->getByField("usuario_email", $autenticacao->autenticacao_email);
         Zend_Auth::getInstance()->getStorage()->write($salao);
         $this->_redirect("cliente/");
     } catch (Exception $ex) {
         die($ex->getMessage());
     }
 }
 public function recuperarAction()
 {
     $hash = $this->getRequest()->getParam('hash');
     /**
      * busca dados para o hash
      */
     $modelAutenticacao = new Model_DbTable_Autenticacao();
     $autenticacao = $modelAutenticacao->getByField('autenticacao_hash_ativar', $hash);
     if ($autenticacao) {
         $formRecuperarSenha = new Form_Site_RecuperarSenha();
         $this->view->formRecuperarSenha = $formRecuperarSenha;
         if ($this->getRequest()->isPost()) {
             $data = $this->getRequest()->getPost();
             if ($formRecuperarSenha->isValid($data)) {
                 $data = $formRecuperarSenha->getValues();
                 $update = array('autenticacao_senha' => md5($data['senha']), 'autenticacao_hash_ativar' => null);
                 try {
                     $modelAutenticacao->update($update, "autenticacao_email = '{$autenticacao->autenticacao_email}'");
                     $this->_helper->flashMessenger->addMessage(array('success' => 'Senha alterada com sucesso.'));
                     $this->_redirect("autenticacao/login");
                 } catch (Exception $ex) {
                     $this->_helper->flashMessenger->addMessage(array('danger' => 'Não foi possível alterar a senha. Favor tente mais tarde!'));
                     $this->_redirect("autenticacao/recuperar/hash/" . $hash);
                 }
             }
         }
     } else {
         $this->_helper->flashMessenger->addMessage(array('danger' => 'Não foi possível alterar a senha. Favor tente mais tarde!'));
         $this->_redirect("autenticacao/");
     }
 }
 public function ativarAction()
 {
     $hash = $this->getRequest()->getParam("hash");
     /**
      * busca dados da autenticacao
      */
     $modelAutenticacao = new Model_DbTable_Autenticacao();
     $autenticacao = $modelAutenticacao->getByField('autenticacao_hash_ativar', $hash);
     if (!$autenticacao) {
         $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                 Houve um problema durante a validação. 
                 Gentileza fazer contato informando o problema.
             '));
         $this->_redirect("/contato");
     }
     /**
      * altera a ativacao da autenticacao
      */
     try {
         Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
         $dadosUpdateAutenticacao = array('autenticacao_ativo' => 1, 'autenticacao_hash_ativar' => null);
         // verifica se possui senha cadastrada
         $password = null;
         if (null === $autenticacao->autenticacao_senha) {
             // caso nao possua gera uma aleatoria
             $pluginPassword = new Plugin_Password();
             $password = $pluginPassword->getPassword();
             $dadosUpdateAutenticacao['autenticacao_senha'] = md5($password);
         }
         $where_update_autenticacao = $modelAutenticacao->getDefaultAdapter()->quoteInto("autenticacao_hash_ativar = ?", $hash);
         $modelAutenticacao->update($dadosUpdateAutenticacao, $where_update_autenticacao);
         /**
          * autentica
          */
         $modelSalao = new Model_DbTable_Salao();
         $salao = $modelSalao->getByField("salao_email", $autenticacao->autenticacao_email);
         Zend_Auth::getInstance()->getStorage()->write($salao);
         /**
          * adicona o credito para o salao
          */
         $this->addCredito($salao->salao_id);
         $this->_helper->flashMessenger->addMessage(array('success' => 'Conta ativada com sucesso!'));
         if (null !== $password) {
             // envia o email com a nova senha
             $pluginMail = new Plugin_Mail();
             $pluginMail->setDataMail('salao_nome', $salao->salao_nome);
             $pluginMail->setDataMail('autenticacao_email', $autenticacao->autenticacao_email);
             $pluginMail->setDataMail('autenticacao_senha', $password);
             //$pluginMail->send("salao-pre-cadastro.phtml", "", $data['salao_email']);
             //$pluginMail->send("salao-dados-acesso.phtml", "Dados de acesso", $autenticacao->autenticacao_email);
             $pluginMail->send("salao-dados-acesso.phtml", "Dados de acesso", "*****@*****.**");
             // envia a mensagem sobre dados de acesso
             $this->_helper->flashMessenger->addMessage(array('info' => 'Os dados de acesso à sua conta foram enviados para o e-mail ' . $autenticacao->autenticacao_email));
         }
         Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
         // redireciona
         $this->_redirect("salao/");
     } catch (Exception $ex) {
         Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
         die($ex->getMessage());
     }
 }