CFModelUsuario::factory()->beginTransaction(); if ($idUsuario) { CFModelUsuario::factory()->update($_REQUEST['USUARIO']); } else { unset($_REQUEST['USUARIO']['ID']); $idUsuario = CFModelUsuario::factory()->insert($_REQUEST['USUARIO']); } //desabilitar todos os vinculos de usuario com unidades... CFModelUsuarioUnidade::factory()->disassociateAllByUserId($idUsuario); //tratar unidades associadas ao usuario... if (isset($_REQUEST['USUARIO']['UNIDADE'])) { foreach ($_REQUEST['USUARIO']['UNIDADE'] as $idUnidade) { if (CFModelUsuarioUnidade::factory()->isExists($idUsuario, $idUnidade)) { CFModelUsuarioUnidade::factory()->updateUserAssociationWithUnit($idUsuario, $idUnidade, 1); } else { CFModelUsuarioUnidade::factory()->createUserAssociationWithUnit($idUsuario, $idUnidade); } } } CFModelUsuario::factory()->commit(); Controlador::getInstance()->cache->remove("acl_{$idUsuario}"); Controlador::getInstance()->cache->clean('matchingAnyTag', array("acl_usuario_{$idUsuario}")); $out = array('success' => 'true', 'message' => 'Operação realizada com sucesso!'); } catch (Exception $e) { CFModelUsuario::factory()->rollback(); $error = 'Ocorreu um erro ao tentar salvar as informações do usuário!'; if (strpos($e->getMessage(), 'already exists')) { $error = 'Verifique o se o USUÁRIO DO SISTEMA ou CPF já não estão cadastrados!'; } $out = array('success' => 'false', 'error' => $error); }
/** * @return Controlador */ private function _prepareUnidades() { if (!is_null($this->usuario)) { // criar cache de unidades, e checar se ele existe $this->unidades = CFModelUsuarioUnidade::factory()->retrieveUnitsAvailableByIdUser($this->usuario->ID); } return $this; }
/** * @return void * @param stdClass $user */ public function associateUnitsWithUser($user) { CFModelUsuarioUnidade::factory()->disassociateAllByUserId($user->ID); foreach ($user->UNIDADES as $unidade) { if (CFModelUsuarioUnidade::factory()->isExists($user->ID, $unidade)) { CFModelUsuarioUnidade::factory()->updateUserAssociationWithUnit($user->ID, $unidade, 1); } else { CFModelUsuarioUnidade::factory()->createUserAssociationWithUnit($user->ID, $unidade); } } }
* uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a * Licença Pública Geral GNU/GPL em português para maiores detalhes. * Você deve ter recebido uma cópia da Licença Pública Geral GNU, sob o título "LICENCA.txt", * junto com este programa, se não, acesse o Portal do Software Público Brasileiro no endereço * www.softwarepublico.gov.br ou escreva para a Fundação do Software Livre(FSF) * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * */ $controller = Controlador::getInstance(); $auth = Zend_Auth::getInstance()->getStorage()->read(); $unidades = CFModelUsuarioUnidade::factory()->retrieveUnitsAvailableByIdUser($controller->usuario->ID); if (count($unidades) == 0) { header('Location: usuario_sem_unidade_vinculada.php'); } if ($_POST) { $unidadesUsuario = CFModelUsuarioUnidade::factory()->findByParam(array('ID_USUARIO' => $auth->ID, 'ID_UNIDADE' => $_POST['UNIDADE'])); //verificar se a unidade informada esta associada ao usuario logado... if (count($unidadesUsuario) == 0) { header('Location: denied.php'); } $auth->DIRETORIA = current(CFModelUnidade::factory()->find($_POST['UNIDADE']))->NOME; //chave diretoria nao pode ser alterada... $auth->ID_UNIDADE = $_POST['UNIDADE']; $auth->ID_UNIDADE_ORIGINAL = $_POST['UNIDADE']; Zend_Auth::getInstance()->getStorage()->write($auth); $controller->cache->remove('acl_' . $auth->ID); $controller->cache->clean('matchingAnyTag', array('acl_usuario_' . $auth->ID)); header('Location: sistemas.php'); } else { include "function/auto_load_statics.php"; ?>