Esempio n. 1
0
     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);
 }
Esempio n. 2
0
 /**
  * @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";
    ?>