/** * Mapeada como * /participar */ public function criarAction() { $this->view->menu = ""; $form = new Application_Form_Pessoa(); $this->view->form = $form; $data = $this->getRequest()->getPost(); if ($this->getRequest()->isPost() && $form->isValid($data)) { $data = $form->getValues(); $pessoa = new Application_Model_Pessoa(); $participante = new Application_Model_Participante(); $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV); $idEncontro = $config->encontro->codigo; $data2 = array('id_encontro' => $idEncontro, 'id_municipio' => $data['id_municipio'], 'id_instituicao' => $data['id_instituicao']); unset($data['id_municipio']); unset($data['id_instituicao']); unset($data['captcha']); $adapter = $pessoa->getAdapter(); try { $adapter->beginTransaction(); $idPessoa = $pessoa->criar($data); $data2['id_pessoa'] = $idPessoa; $participante->insert($data2); // the commit occurs only after send email! } catch (Zend_Db_Exception $ex) { $adapter->rollBack(); $sentinela = 1; if ($ex->getCode() == 23505) { $this->_helper->flashMessenger->addMessage(array('warning' => _('E-mail already registered.'))); } else { $this->_helper->flashMessenger->addMessage(array('danger' => _('An unexpected error ocurred.<br/> Details: ') . $ex->getMessage())); } } // codigo responsavel por enviar email para confirmacao try { if (!empty($idPessoa) and $idPessoa > 0) { $rs = $participante->dadosTicketInscricao($idPessoa, $idEncontro); $pdf = new Sige_Pdf_Relatorio_TicketInscricao($rs); $binary = $pdf->obterPdf(); $mail = new Application_Model_EmailConfirmacao(); $mail->send($idPessoa, $idEncontro, Application_Model_EmailConfirmacao::MSG_CONFIRMACAO, $binary); $data = array('email_enviado' => 'true'); $where = $pessoa->getAdapter()->quoteInto('id_pessoa = ?', $idPessoa); $pessoa->update($data, $where); } } catch (Exception $ex) { $adapter->rollBack(); $sentinela = 1; $this->_helper->flashMessenger->addMessage(array('danger' => _('An unexpected error ocurred.<br/> Details: ') . $ex->getMessage())); } if ($sentinela == 0) { $adapter->commit(); return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'sucesso'), 'default', true); } } }
public function editarPermissaoAction() { $this->autenticacao(); $this->view->title = $this->t->_('Edit Permission'); $cache = Zend_Registry::get('cache_common'); $ps = $cache->load('prefsis'); $idEncontro = (int) $ps->encontro["id_encontro"]; $model = new Application_Model_Pessoa(); $form = new Admin_Form_Permissao(); $this->view->form = $form; if ($this->getRequest()->isPost()) { $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { $cancelar = $this->getRequest()->getPost('cancelar'); if (isset($cancelar)) { return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'config', 'action' => 'permissao-usuarios'), 'default', true); } $id = $this->getRequest()->getParam('id', 0); $admin = (bool) $form->getValue('admin') ? 't' : 'f'; $id_tipo_usuario = $form->getValue('id_tipo_usuario'); $adapter = $model->getAdapter(); try { $adapter->beginTransaction(); $model->update(array('administrador' => $admin), 'id_pessoa = ' . $id); $adapter->update("encontro_participante", array('id_tipo_usuario' => $id_tipo_usuario), "id_encontro = {$idEncontro} AND id_pessoa = {$id}"); $adapter->commit(); return $this->_helper->redirector->goToRoute(array('module' => 'admin', 'controller' => 'config', 'action' => 'permissao-usuarios'), 'default', true); } catch (Exception $e) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Ocorreu um erro inesperado.<br/>Detalhes: ' . $e->getMessage())); $adapter->rollBack(); } } else { $form->populate($formData); } } else { $id = $this->_getParam('id', 0); if ($id > 0) { $rs = $model->buscarPermissaoUsuarios($idEncontro, $id, "id_pessoa"); $data = $rs[0]; $form->populate(array('admin' => $data['administrador'], 'id_tipo_usuario' => $data['id_tipo_usuario'])); $this->view->usuario = $data['nome']; } } }
/** * Mapeada como * /login */ public function loginAction() { $isMobile = false; $mobile = new Sige_Mobile_Browser(); if ($mobile->isMobile()) { $this->_helper->layout->setLayout('mobile'); $isMobile = true; $form = new Mobile_Form_Login(); $this->_helper->viewRenderer('mobile-login'); } else { $this->_helper->layout->setLayout('twbs3/front-page'); $form = new Application_Form_Login(); } $this->view->form = $form; $data = $this->getRequest()->getPost(); if ($this->getRequest()->isPost() && $form->isValid($data)) { $data = $form->getValues(); $model = new Application_Model_Pessoa(); $resultadoConsulta = $model->avaliaLogin($data['email'], $data['senha']); if ($resultadoConsulta != NULL) { $idPessoa = $resultadoConsulta['id_pessoa']; $administrador = $resultadoConsulta['administrador']; $apelido = $resultadoConsulta['apelido']; $twitter = $resultadoConsulta['twitter']; $cadastro_validado = $resultadoConsulta['cadastro_validado']; if ($cadastro_validado == false) { $where = $model->getAdapter()->quoteInto('id_pessoa = ?', $idPessoa); $model->update(array('cadastro_validado' => true), $where); } $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV); $idEncontro = $config->encontro->codigo; $result = $model->buscarUltimoEncontro($idPessoa); $irParaEditar = false; // se ultimo encontro do participante for diferente do atual if ($model->verificaEncontro($idEncontro, $idPessoa) == false) { $result['id_encontro'] = intval($idEncontro); // forçar participante validado : issue #32 $result['validado'] = 't'; // true $result['data_validacao'] = new Zend_Db_Expr('now()'); try { $model->getAdapter()->insert("encontro_participante", $result); $this->_helper->flashMessenger->addMessage(array('success' => _('Welcome back. Your registration was confirmed!<br/>Please update your profile data.'))); $irParaEditar = true; $this->_enviarEmailConfirmacaoInscricao($idEncontro, $idPessoa); } catch (Exception $e) { $irParaEditar = false; $this->_helper->flashMessenger->addMessage(array('danger' => $e->getMessage())); } } else { if (!$result['validado']) { // se participante ainda não está validado no encontro // devemos validar $adapter = $model->getAdapter(); $adapter->fetchAll("UPDATE encontro_participante\n SET validado = 't', data_validacao = now()\n WHERE id_pessoa = {$result['id_pessoa']}\n AND id_encontro = {$idEncontro}"); } } $auth = Zend_Auth::getInstance(); $storage = $auth->getStorage(); $storage->write(array("idPessoa" => $idPessoa, "administrador" => $administrador, "apelido" => $apelido, "idEncontro" => $idEncontro, "twitter" => $twitter, "email" => $data['email'])); if ($isMobile) { return $this->_helper->redirector->goToRoute(array(), 'mobile', true); } else { if ($irParaEditar) { return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'editar'), 'default', true); } else { $session = new Zend_Session_Namespace(); if (isset($session->url)) { $this->_redirect($session->url, array('prependBase' => false)); unset($session->url); } else { return $this->_helper->redirector->goToRoute(array('controller' => 'participante', 'action' => 'index'), 'default', true); } } } } else { $this->_helper->flashMessenger->addMessage(array('danger' => _('E-mail or Password incorrect.'))); } } }