Beispiel #1
0
 /**
  * Verifica se o usuário tem acesso a uma determinada rota
  * @param \Core_Dto_Search $dtoSearch
  * @return Object
  */
 public function verificaUsuarioRota(\Core_Dto_Search $dtoSearch)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_pessoa', 'sqPessoa', 'integer');
     $query = $this->_em->createNativeQuery('
             SELECT * FROM sicae.vw_usuario u
             INNER JOIN sicae.vw_usuario_perfil up on up.sq_usuario = u.sq_usuario
             INNER JOIN sicae.vw_perfil p on p.sq_perfil = up.sq_perfil
             INNER JOIN sicae.vw_perfil_funcionalidade pf on pf.sq_perfil = p.sq_perfil
             INNER JOIN sicae.vw_funcionalidade f on f.sq_funcionalidade = pf.sq_funcionalidade
             INNER JOIN sicae.vw_rota r on f.sq_funcionalidade = r.sq_funcionalidade
             WHERE u.sq_pessoa = :sqPessoa
             AND   r.tx_rota = :txRota', $rsm);
     $query->setParameter('sqPessoa', $dtoSearch->getSqPessoa());
     $query->setParameter('txRota', $dtoSearch->getTxRota());
     $result = $query->getResult();
     if (count($result) > 0) {
         return TRUE;
     }
     return FALSE;
 }