* 2 da Licença. * * Este programa é distribuíção na esperança que possa ser útil, mas SEM NENHUMA GARANTIA; sem * uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a * Licença Pública Geral GNU/GPL em português para maiores detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF) * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */ $controller = Controlador::getInstance(); $auth = $controller->usuario; $file = 'detalhar_processos.php'; $name_recurso = str_replace('.', '_', $file); if (!$controller->cache->test('recurso_' . $name_recurso)) { $recurso = DaoRecurso::getRecursoByUrl($file); if (isset($recurso->id)) { $controller->cache->save($recurso, 'recurso_' . $name_recurso, array('recurso_' . $recurso->id, 'paginas')); } else { $recurso = null; } } else { $recurso = $controller->cache->load('recurso_' . $name_recurso); } $controller->setContexto(null); $botoes = Util::getMenus($auth, $recurso, $controller->acl); foreach ($recurso->dependencias as $arquivo) { include 'interfaces/' . $arquivo; } ?> <html>
/** * @return Controlador */ private function _check() { if (is_null($this->usuario) && !strstr($this->_view, 'captcha.php') && !strstr($this->_view, 'modelos/login/login.php') && !strstr($this->_view, 'recuperar_senha_usuario.php') && !strstr($this->_view, 'webservices/') && !strstr($this->_view, 'logoff.php') && !strstr($this->_view, 'modelos/prazos/verificar_prazos_pendentes.php') && !strstr($this->_view, 'modelos/usuarios/recuperar_senha_usuario.php')) { $this->_view = 'identificacao.php'; } if (!is_null($this->usuario)) { if (is_null($this->usuario->ID_UNIDADE) && $this->_view != 'logoff.php') { if (count($this->unidades) > 1) { $this->_view = 'usuario_selecionar_unidade.php'; } else { if (count($this->unidades) == 1) { $this->usuario->DIRETORIA = current($this->unidades)->NOME; $this->usuario->ID_UNIDADE = current($this->unidades)->ID; $this->usuario->ID_UNIDADE_ORIGINAL = current($this->unidades)->ID; Zend_Auth::getInstance()->getStorage()->write($this->usuario); $this->_prepareAcl(); } else { $this->_view = 'usuario_sem_unidade_vinculada.php'; } } } if ($this->_view == '' || $this->_view == '/' || $this->_view == 'identificacao.php') { $this->_view = 'sistemas.php'; } /* * Pegar o id do recurso que o usuário está tentando acessar * isso não deve ser feito no caso do recurso ser login ou logoff */ if (substr_count($this->_view, '/') == 0 && array_search($this->_view, $this->_excessoes) === false) { $name_recurso = str_replace('.', '_', $this->_view); if (!$this->cache->test('recurso_' . $name_recurso)) { $this->recurso = DaoRecurso::getRecursoByUrl($this->_view); if (isset($this->recurso->id)) { $this->cache->save($this->recurso, 'recurso_' . $name_recurso, array('recurso_' . $this->recurso->id, 'paginas')); } else { $this->recurso = null; } } else { $this->recurso = $this->cache->load('recurso_' . $name_recurso); } /* * Verificacao de ACL ocorre abaixo * mas não deve ocorrer a menos que o usuário esteja requisitando * um recurso contido na pasta interfaces * Não existe verificacao de Acl para a pasta modelos/ */ if (isset($this->recurso->id)) { if ($this->acl->has($this->recurso->id)) { if (!$this->acl->isAllowed($this->usuario->ID, $this->recurso)) { $this->_view = 'denied.php'; } else { // nao recusou o acl, montar os submenus do recurso $this->botoes = Util::getMenus($this->usuario, $this->recurso, $this->acl); } } else { // TODO: Aqui negará novamente, pois se o recurso não existe no acl // deve ser negado por segurança $this->_view = 'denied.php'; } } else { $this->_view = 'denied.php'; } } } return $this; }