Exemplo n.º 1
0
 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'];
         }
     }
 }