/** * 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; }