예제 #1
0
 /**
  * Verifica se o usuário tem acesso a um determinado módulo.
  * 
  * Quando for um módulo de unidade, basta verificar se existe uma permissão
  * para a lotação do usuário no grupo da unidade.
  * 
  * Já quando o módulo for global, verifica se existe alguma lotação para o 
  * módulo, independente do grupo (unidade).
  * 
  * @param Novosga\Model\Util\UsuarioSessao $usuario
  * @param Novosga\Model\Modulo $modulo
  */
 public function hasAccess(UsuarioSessao $usuario, Modulo $modulo)
 {
     if ($modulo->isGlobal()) {
         // para modulos globais
         return $usuario->hasPermissao($modulo);
     } else {
         if (!$usuario->getUnidade()) {
             throw new Exception(_('Para acessar esse módulo primeiro é necessário escolher uma unidade.'));
         }
         // verificando se existe permissao para a lotacao atual do usuario
         $lotacao = $usuario->getLotacao();
         return $usuario->hasPermissao($modulo, $lotacao->getCargo());
     }
 }
예제 #2
0
 /**
  * {@inheritDoc}
  */
 public function isGlobal()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'isGlobal', array());
     return parent::isGlobal();
 }