/** * Cadastro de usuário */ public function novoAction() { $this->view->form = $this->formUsuario(); if ($this->getRequest()->isPost()) { $aDados = $this->getRequest()->getPost(); if ($this->view->form->isValid($aDados)) { $oUsuario = new Administrativo_Model_Usuario(); $aCheckUsuario = Administrativo_Model_Usuario::getByAttribute('login', $aDados['login']); if ($aCheckUsuario !== NULL) { $this->view->messages[] = array('error' => $this->translate->_('O Login já está em uso no sistema.')); return FALSE; } $oUsuarioEmail = Administrativo_Model_Usuario::getByAttribute('email', $aDados['email']); if (!empty($oUsuarioEmail)) { $this->view->messages[] = array('error' => $this->translate->_('Email já está cadastrado no sistema.')); return FALSE; } $oPerfil = Administrativo_Model_Perfil::getByAttribute('id', $aDados['perfil']); $iTipoPerfil = $oPerfil->getEntity()->getTipo(); $iTipoUsuario = isset($aDados['tipo']) ? $aDados['tipo'] : $this->view->user->getTipo(); if ($iTipoUsuario != $iTipoPerfil) { $this->view->messages[] = array('error' => $this->translate->_('Perfil incorreto para o tipo selecionado.')); return FALSE; } $aDados['principal'] = $this->view->user->getAdministrativo() && $iTipoUsuario == 1 ? 'true' : 'false'; $oUsuario->setTipo($this->view->user->getTipo()); $oUsuario->setCnpj($this->view->user->getCnpj()); $oUsuario->setHabilitado(TRUE); $oUsuario->persist($aDados); Administrativo_Model_Usuario::enviarEmailSenha($oUsuario); $aMensagem = array('success' => $this->translate->_('Usuário cadastrado com sucesso.')); $this->_helper->getHelper('FlashMessenger')->addMessage($aMensagem); $this->_redirector->gotoSimple('editar', 'usuario', 'administrativo', array('id' => $oUsuario->getId())); } } }
/** * Envia ao usuário um email contendo as informações necessárias para a recuperação da sua senha de acesso. * @throws Exception */ public function esqueciMinhaSenhaPostAction() { $aDados = $this->getRequest()->getParams(); $oForm = new Auth_Form_EsqueciMinhaSenha(); $aRetornoJson = array(); $aRetornoJson['status'] = TRUE; $aRetornoJson['message'] = ''; try { if (!$oForm->isValid($aDados)) { throw new Exception($this->translate->_('Email informado não é válido.')); } /** * Buscamos o usuário pelo email */ $oQueryAtivos = Administrativo_Model_Usuario::getQuery(); $oQueryAtivos->select('e'); $oQueryAtivos->from('\\Administrativo\\Usuario', 'e'); $oQueryAtivos->where("e.email = '{$oForm->email->getValue()}' and e.habilitado = true"); $aEntitiesUsuarios = $oQueryAtivos->getQuery()->getResult(); if (count($aEntitiesUsuarios) != 1) { throw new Exception($this->translate->_('Email informado não é um cadastro válido.')); } $oUsuario = new Administrativo_Model_Usuario($aEntitiesUsuarios[0]); Administrativo_Model_Usuario::enviarEmailSenha($oUsuario); $aRetornoJson['success'] = $this->translate->_('Um email foi enviado para a sua conta com instruções.'); $aRetornoJson['url'] = $this->view->baseUrl('/auth/login'); } catch (Exception $eErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $eErro->getMessage(); } echo $this->getHelper('json')->sendJson($aRetornoJson); }