/**
  * Altera a senha de acesso
  */
 public function alterarSenhaAction()
 {
     $formSenha = new Form_Salao_Senha();
     $formSenha->submit->setLabel("Alterar Senha");
     $this->view->form = $formSenha;
     if ($this->getRequest()->isPost() && $formSenha->isValid($this->getRequest()->getPost())) {
         $autenticacao_senha_atual = $formSenha->getValue("autenticacao_senha_atual");
         $autenticacao_senha = $formSenha->getValue("autenticacao_senha");
         $autenticacao_senha_repetir = $formSenha->getValue("autenticacao_senha_repetir");
         if ($autenticacao_senha === $autenticacao_senha_repetir) {
             try {
                 $modelAutenticacao = new Model_DbTable_Autenticacao();
                 $adpter = $modelAutenticacao->getDefaultAdapter();
                 $where = $adpter->quoteInto("autenticacao_email = ?", Zend_Auth::getInstance()->getIdentity()->autenticacao_email);
                 $update = array('autenticacao_senha' => md5($autenticacao_senha));
                 $modelAutenticacao->update($update, $where);
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Senha alterada com sucesso!'));
                 $this->_redirect('salao/');
             } catch (Exception $ex) {
             }
         } else {
             $this->_helper->flashMessenger->addMessage(array('danger' => 'A repetição da senha é diferente da senha digitada!'));
             $this->_redirect('salao/config/alterar-senha');
         }
     }
 }
 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/");
     }
 }
 protected function cadastraBeautyMaker()
 {
     // form cadastro profissional
     $formCadastroSalao = new Form_Site_CadastroSalao();
     $this->view->formCadastroProfissional = $formCadastroSalao;
     $data = $this->getRequest()->getPost();
     unset($data['submit']);
     if ($formCadastroSalao->isValid($data)) {
         $modelSalao = new Model_DbTable_Salao();
         $senha = $data['senha'];
         unset($data['senha']);
         $cupom = $data['salao_cupom'];
         unset($data['salao_cupom']);
         $pluginSalaoSlug = new Plugin_SalaoSlug($data['salao_nome']);
         $data['salao_slug'] = $pluginSalaoSlug->getSlug();
         try {
             Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
             $hash = md5(uniqid());
             $salao_id = $modelSalao->insert($data);
             /**
              * cria o registro da autenticacao com o hash
              */
             $modelAutenticacao = new Model_DbTable_Autenticacao();
             $dadosAutenticacao = array('autenticacao_email' => $data['salao_email'], 'autenticacao_hash_ativar' => $hash, 'autenticacao_senha' => md5($senha), 'autenticacao_modulo' => 2);
             $modelAutenticacao->insert($dadosAutenticacao);
             /**
              * set Message sucess
              */
             $this->_helper->flashMessenger->addMessage(array('success' => ' 
                     Seu cadastro foi realizado com sucesso.
                     Favor verificar o e-mail informado para validar sua conta.
                 '));
             /**
              * Verifica se tem cupom
              */
             if (!empty($cupom)) {
                 $valida_cupom = $this->validaCupom($cupom, $salao_id);
                 // retorno
                 if ($valida_cupom == 0) {
                     $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                             Houve um problema na validação do seu cupom.  
                             Favor entre em contato com o nossa equipe de suporte!
                         '));
                 } elseif ($cupom == 1) {
                     $this->_helper->flashMessenger->addMessage(array('success' => ' 
                             Seu cupom foi validado com sucesso!
                         '));
                 } elseif ($cupom == 2) {
                     $this->_helper->flashMessenger->addMessage(array('warning' => ' 
                             Este cupom já foi utilizado!
                         '));
                 }
             }
             /**
              * Envia o email
              */
             $link_ativar = Zend_Registry::get('config')->url->site . "/beautymaker/ativar/hash/" . $hash;
             $pluginMail = new Plugin_Mail();
             $pluginMail->setDataMail('salao_proprietario', $data['salao_proprietario']);
             $pluginMail->setDataMail('salao_nome', $data['salao_nome']);
             $pluginMail->setDataMail('link_ativar', $link_ativar);
             $pluginMail->send('salao-cadastro.phtml', 'Cadastro Recebido', $data['salao_email']);
             Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
             $this->_redirect('beautymaker/');
         } catch (Exception $ex) {
             Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
             $this->_helper->flashMessenger->addMessage(array('danger' => $ex->getMessage()));
             $this->_redirect('beautymaker/');
         }
     } else {
         $this->view->errors = true;
     }
 }
 public function preCadastroAction()
 {
     /**
      * form de salao
      */
     $formSalao = new Form_Site_CadastroSalao();
     // removing some elements
     $formSalao->removeElement('salao_cnpj');
     $formSalao->removeElement('salao_proprietario');
     $formSalao->removeElement('senha');
     $formSalao->removeElement('salao_politica_termo');
     $formSalao->removeElement('salao_cupom');
     // setting not required
     $formSalao->salao_contato->setRequired(false);
     $formSalao->salao_numero->setRequired(false);
     $this->view->form = $formSalao;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formSalao->isValid($data)) {
             $data = $formSalao->getValues();
             $data['salao_pre_cadastro'] = 1;
             try {
                 // gerar o slug
                 $pluginSalaoSlug = new Plugin_SalaoSlug($data['salao_nome']);
                 $data['salao_slug'] = $pluginSalaoSlug->getSlug();
                 Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                 $modelSalao = new Model_DbTable_Salao();
                 $salao_id = $modelSalao->insert($data);
                 /**
                  * Gera a autenticacao
                  */
                 $hash = md5(uniqid());
                 $dadosAutenticacao = array('autenticacao_email' => $data['salao_email'], 'autenticacao_modulo' => 2, 'autenticacao_hash_ativar' => $hash);
                 $modelAutenticacao = new Model_DbTable_Autenticacao();
                 $modelAutenticacao->insert($dadosAutenticacao);
                 // envie o email para o salao
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('salao_hash', $hash);
                 $pluginMail->setDataMail('key', $data['salao_slug']);
                 //$pluginMail->send("salao-pre-cadastro.phtml", "", $data['salao_email']);
                 $pluginMail->send("salao-pre-cadastro.phtml", "Oportunidade!!!", "*****@*****.**");
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 /**
                  * set Message sucess
                  */
                 $this->_helper->flashMessenger->addMessage(array('success' => ' 
                         Salão pré-cadastrado com sucesso.
                     '));
                 $this->_redirect("admin/salao/pre-cadastro");
             } catch (Zend_Mail_Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                         E-mail não pode ser enviado! - 
                     ' . $ex->getMessage()));
                 $this->_redirect("admin/salao/pre-cadastro");
             } catch (Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                         Houve um erro ao cadastrar o salão. - 
                     ' . $ex->getMessage()));
                 $this->_redirect("admin/salao/pre-cadastro");
             }
         }
     }
 }