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']; } } }