public function check()
 {
     if (is_array($this->action)) {
         $modulo = strtolower($this->action[0]->getControle()->getModulo()->getNome());
     } else {
         $modulo = strtolower($this->action->getControle()->getModulo()->getNome());
     }
     if ($modulo === 'administrativo') {
         if (is_array($this->action)) {
             foreach ($this->action as $a) {
                 $usuarioAcao = Administrativo_Model_UsuarioAcao::getByUsuarioAcao($this->user, $a);
                 if (!empty($usuarioAcao)) {
                     break;
                 }
             }
         } else {
             $usuarioAcao = Administrativo_Model_UsuarioAcao::getByUsuarioAcao($this->user, $this->action);
         }
         if (empty($usuarioAcao)) {
             return false;
         }
     } else {
         if (is_array($this->action)) {
             foreach ($this->action as $a) {
                 $usuarioContribuinteAcao = Administrativo_Model_UsuarioContribuinteAcao::getByUsuarioContribuinteAcao($this->user, $this->contribuinte, $a);
                 if (!empty($usuarioContribuinteAcao)) {
                     break;
                 }
             }
         } else {
             $usuarioContribuinteAcao = Administrativo_Model_UsuarioContribuinteAcao::getByUsuarioContribuinteAcao($this->user, $this->contribuinte, $this->action);
         }
         /* se o usuario n�o esta vinculado a esta a��o redireciona para a index */
         if (empty($usuarioContribuinteAcao)) {
             return false;
         }
     }
     return true;
 }
 /**
  * Vincula vetor de acao ao UsuarioContribuinte
  * @param Administrativo_Model_Acao[] $acoes
  *
  * @throws Exception
  */
 public function adicionaAcoes(array $aAcoesNovasEnvio)
 {
     if (count($aAcoesNovasEnvio) <= 0) {
         throw new Exception('Parametro de ações não informado corretamente.');
     }
     $aContribuintesAcoes = $this->getEntity()->getUsuarioContribuinteAcoes();
     $aAcoesAntigas = array();
     $aAcoesNovas = array();
     if (count($aContribuintesAcoes) > 0) {
         foreach ($aContribuintesAcoes as $oAcao) {
             $aAcoesAntigas[$oAcao->getAcao()->getId()] = $oAcao->getAcao()->getId();
         }
     }
     foreach ($aAcoesNovasEnvio as $oAcaoNova) {
         $aAcoesNovas[$oAcaoNova->getId()] = $oAcaoNova->getId();
     }
     if (count($aAcoesAntigas) > 0) {
         $aAcoesAdicionar = array_diff($aAcoesNovas, $aAcoesAntigas);
     } else {
         $aAcoesAdicionar = $aAcoesNovas;
     }
     foreach ($aAcoesAdicionar as $iAcao) {
         $oAcaoAdicionar = Administrativo_Model_Acao::getById($iAcao);
         $oUsuarioContribuinte = new Administrativo_Model_UsuarioContribuinteAcao();
         $oUsuarioContribuinte->setUsuarioContribuinte($this->entity);
         $oUsuarioContribuinte->setAcao($oAcaoAdicionar->getEntity());
         $this->em->persist($oUsuarioContribuinte->getEntity());
     }
     $this->em->flush();
 }