Exemplo n.º 1
0
 private function atendimentosUsuario(UsuarioSessao $usuario, $servicos, $maxResults = 0, $where = '')
 {
     $builder = $this->builder()->where("e.status = :status AND su.unidade = :unidade AND s.id IN (:servicos)");
     if (!empty($where)) {
         $builder->andWhere($where);
     }
     $this->applyOrders($builder, $usuario->getUnidade());
     $query = $builder->getQuery()->setParameter('status', AtendimentoService::SENHA_EMITIDA)->setParameter('unidade', $usuario->getUnidade()->getId())->setParameter('servicos', $servicos);
     if ($maxResults > 0) {
         $query->setMaxResults($maxResults);
     }
     return $query->getResult();
 }
Exemplo n.º 2
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());
     }
 }