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(); }