/** * validacao se o controle está ativo * @param Zend_Acl_Resource_Interface $oResource * @param string $sPrivilegio */ protected function validaControleAtivo(Zend_Acl_Resource_Interface $oResource, $sPrivilegio) { $aIdentidadeControle = explode(':', $oResource->getResourceId()); $sIdentidadeControle = $aIdentidadeControle[1]; $sIdentidadeModulo = $aIdentidadeControle[0]; $oModulo = Administrativo_Model_Modulo::getByAttribute('identidade', $sIdentidadeModulo); $aControles = $oModulo->getControles(); foreach ($aControles as $oControle) { if ($oControle->getIdentidade() != $sIdentidadeControle) { continue; } if (!$oControle->getVisivel()) { return TRUE; } } return TRUE; }
public function editaAction() { parent::noTemplate(); $id = $this->getRequest()->getParam('id'); $modulo = $this->getRequest()->getParam('m'); $controle = Administrativo_Model_Controle::getById($id); $modulo = Administrativo_Model_Modulo::getById($modulo); $this->view->modulo = $modulo; $oForm = $this->formControle($modulo->getId(), '/administrativo/controle/edita', $id, array('nome' => $controle->getNome(), 'identidade' => $controle->getIdentidade(), 'visivel' => $controle->getVisivel())); if ($this->getRequest()->isPost()) { if (!$oForm->isValid($_POST)) { $this->view->form = $oForm; $this->getResponse()->setHttpResponseCode(406); } else { $dados = $this->getRequest()->getPost(); /* salva módulo */ $controle->persist($dados); $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Controle modificado.')); } } $this->view->form = $oForm; }
/** * Atualiza os dados de um perfil informado */ public function editarAction() { $iIdPerfil = $this->getRequest()->getParam('id'); if ($iIdPerfil === null) { $this->_redirector->gotoSimple('index'); } $oPerfil = Administrativo_Model_Perfil::getById($iIdPerfil); $oForm = $this->formPerfil('editar', $iIdPerfil); if ($oPerfil === null) { $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Perfil inválido.')); $this->_redirector->gotoSimple('index'); } if ($this->getRequest()->isPost()) { $aDados = $this->getRequest()->getPost(); if (!$oForm->isValidPartial($aDados)) { $this->view->form = $oForm; } else { $oPerfil->persist($aDados); $this->_helper->getHelper('FlashMessenger')->addMessage(array('notice' => 'Perfil modificado.')); $this->_redirector->gotoSimple('editar', 'perfil', 'administrativo', array('id' => $oPerfil->getId())); } } else { $aValues = array('tipo' => $oPerfil->getTipo(), 'nome' => $oPerfil->getNome(), 'administrativo' => $oPerfil->getAdministrativo()); $this->view->form = $this->formPerfil('editar', $iIdPerfil, $aValues); } // busca permissões do perfil_perfis $aPerfilPerfis = array(); $oListaPerfilPerfis = $oPerfil->getPerfis(); foreach ($oListaPerfilPerfis as $aPerfil) { $aPerfilPerfis[] = $aPerfil->getId(); } // busca permissões do perfil_perfis $aPerfilAcoes = array(); $oListaPerfilAcoes = $oPerfil->getAcoes(); foreach ($oListaPerfilAcoes as $aAcao) { $aPerfilAcoes[] = $aAcao->getId(); } $this->view->aPerfis = Administrativo_Model_Perfil::getAll(); $this->view->aPerfilPerfis = $aPerfilPerfis; $this->view->modulosAdm = Administrativo_Model_Modulo::getAll(); $this->view->aPerfilAcoes = $aPerfilAcoes; $this->view->perfil = $oPerfil; }
/** * Tela para configurar as permissões */ public function permissaoAction() { parent::noTemplate(); $usuario_cont_id = $this->getRequest()->getParam('id'); $usuario_cont = Administrativo_Model_UsuarioContribuinte::getById($usuario_cont_id); $usuario = $usuario_cont->getUsuario(); // Gera um vetor com todas as acoes permitidas a esse usuario $acoes = $usuario_cont == NULL ? array() : $usuario_cont->getAcoes(); $permissoes = array(); foreach ($acoes as $a) { $permissoes[] = $a->getId(); } $this->view->contribuinte = Administrativo_Model_UsuarioContribuinte::getContribuinte($usuario_cont->getId()); $this->view->usuario_contribuinte = $usuario_cont->getId(); $this->view->usuario = $usuario; $this->view->modulos = Administrativo_Model_Modulo::getByAttribute('modulo', array('Contribuinte', 'WebService')); if (count($this->view->modulos) == 1) { $this->view->modulos = array($this->view->modulos); } $this->view->permissoes = $permissoes; $this->view->permissoesAdm = array(); }
/** * Formulario para criacao de novo modulo * @return \Zend_Form */ private function formModulo($sAction = '/administrativo/modulo/novo', $iIdModulo = NULL, Administrativo_Model_Modulo $aDados = NULL) { $oForm = new Twitter_Bootstrap_Form_Vertical(); $oForm->setAction($this->view->baseUrl($sAction))->setMethod('POST')->setAttrib('id', 'form-modulo'); if ($iIdModulo) { $oElm = $oForm->createElement('hidden', 'id'); $oElm->setValue($iIdModulo); $oElm->setRequired(TRUE); $oForm->addElement($oElm); } $oElm = $oForm->createElement('text', 'modulo'); $oElm->setLabel('Nome'); $oElm->setValue($aDados != NULL && $aDados->getNome() != NULL ? $aDados->getNome() : NULL); $oElm->setRequired(TRUE); $oForm->addElement($oElm); $oElm = $oForm->createElement('text', 'identidade'); $oElm->setLabel('Identidade'); $oElm->setValue($aDados != NULL && $aDados->getIdentidade() != NULL ? $aDados->getIdentidade() : NULL); $oElm->setRequired(TRUE); $oForm->addElement($oElm); $oElm = $oForm->createElement('checkbox', 'visivel'); $oElm->setLabel('Visibilidade'); $oElm->setValue($aDados != NULL && $aDados->getVisivel() != NULL ? $aDados->getVisivel() : NULL); $oForm->addElement($oElm); return $oForm; }