function datos_get($filename) { $id = $this->input->get('id'); $token = $this->input->get('token'); //Chequeamos los permisos en el frontend $file = Doctrine_Query::create()->from('File f, f.Tramite t, t.Etapas e, e.Usuario u')->where('f.id = ? AND f.llave = ? AND u.id = ?', array($id, $token, UsuarioSesion::usuario()->id))->fetchOne(); if (!$file) { //Chequeamos permisos en el backend $file = Doctrine_Query::create()->from('File f, f.Tramite.Proceso.Cuenta.UsuariosBackend u')->where('f.id = ? AND f.llave = ? AND u.id = ? AND (u.rol="super" OR u.rol="operacion" OR u.rol="seguimiento")', array($id, $token, UsuarioBackendSesion::usuario()->id))->fetchOne(); if (!$file) { echo 'Usuario no tiene permisos para ver este archivo.'; exit; } } $path = 'uploads/datos/' . $file->filename; if (preg_match('/^\\.\\./', $file->filename)) { echo 'Archivo invalido'; exit; } if (!file_exists($path)) { echo 'Archivo no existe'; exit; } header('Content-Type: ' . get_mime_by_extension($path)); header('Content-Length: ' . filesize($path)); readfile($path); }
private function force_email() { if (uri_string() != 'cuentas/editar' && uri_string() != 'cuentas/editar_form' && uri_string() != 'autenticacion/logout' && UsuarioSesion::usuario() && UsuarioSesion::usuario()->registrado && !UsuarioSesion::usuario()->email) { $this->session->set_flashdata('redirect', current_url()); redirect('cuentas/editar'); } }
public function index() { $pendientes = Doctrine::getTable('Etapa')->findPendientes(UsuarioSesion::usuario()->id); if (UsuarioSesion::usuario()->registrado && $pendientes->count() > 0) { redirect('etapas/inbox'); } else { redirect('tramites/disponibles'); } }
public function iniciar($proceso_id) { $proceso = Doctrine::getTable('Proceso')->find($proceso_id); $this->proceso_id = $proceso->id; $this->pendiente = 1; $etapa = new Etapa(); $etapa->tarea_id = $proceso->getTareaInicial(UsuarioSesion::usuario()->id)->id; $etapa->pendiente = 1; $this->Etapas[] = $etapa; $this->save(); $etapa->asignar(UsuarioSesion::usuario()->id); }
public function eliminar($tramite_id) { $tramite = Doctrine::getTable('Tramite')->find($tramite_id); if ($tramite->Etapas->count() > 1) { echo 'Tramite no se puede eliminar, ya ha avanzado mas de una etapa'; exit; } if (UsuarioSesion::usuario()->id != $tramite->Etapas[0]->usuario_id) { echo 'Usuario no tiene permisos para eliminar este tramite'; exit; } $tramite->delete(); redirect($this->input->server('HTTP_REFERER')); }
public function iniciar($proceso_id) { // Aumentar el contador de Proceso Doctrine_Query::create()->update('Proceso p')->set("proc_cont", "proc_cont + 1")->where("p.id = ?", $proceso_id)->execute(); $proceso = Doctrine::getTable('Proceso')->find($proceso_id); $this->proceso_id = $proceso->id; $this->pendiente = 1; $this->tramite_proc_cont = $proceso->proc_cont; $etapa = new Etapa(); $etapa->tarea_id = $proceso->getTareaInicial(UsuarioSesion::usuario()->id)->id; $etapa->pendiente = 1; $this->Etapas[] = $etapa; $this->save(); $etapa->asignar(UsuarioSesion::usuario()->id); }
function firma_post() { $id = $this->input->post('id'); $llave_firma = $this->input->post('token'); $documento = $this->input->post('documento'); if (!$id || !$llave_firma || !$documento) { $resultado = new stdClass(); $resultado->status = 1; $resultado->error = 'Faltan parametros'; echo json_encode($resultado); exit; } $file = Doctrine_Query::create()->from('File f, f.Tramite.Etapas.Usuario u')->where('f.id = ? AND f.tipo = ? AND f.llave_firma = ? AND u.id = ?', array($id, 'documento', $llave_firma, UsuarioSesion::usuario()->id))->fetchOne(); $resultado = new stdClass(); if (!$file) { $resultado->status = 1; $resultado->error = 'Token no corresponde'; } else { $resultado->status = 0; file_put_contents('uploads/documentos/' . $file->filename, base64_decode($documento)); } echo json_encode($resultado); }
public function cerrar() { //Si ya fue cerrada, retornamos inmediatamente. if (!$this->pendiente) { return; } if ($this->Tarea->almacenar_usuario) { $dato = Doctrine::getTable('DatoSeguimiento')->findOneByNombreAndEtapaId($this->Tarea->almacenar_usuario_variable, $this->id); if (!$dato) { $dato = new DatoSeguimiento(); } $dato->nombre = $this->Tarea->almacenar_usuario_variable; $dato->valor = UsuarioSesion::usuario()->id; $dato->etapa_id = $this->id; $dato->save(); } //Ejecutamos los eventos $eventos = Doctrine_Query::create()->from('Evento e')->where('e.tarea_id = ? AND e.instante = ? AND e.paso_id IS NULL', array($this->Tarea->id, 'despues'))->execute(); foreach ($eventos as $e) { $r = new Regla($e->regla); if ($r->evaluar($this->id)) { $e->Accion->ejecutar($this); } } //Cerramos la etapa $this->pendiente = 0; $this->ended_at = date('Y-m-d H:i:s'); $this->save(); }
public function ver($etapa_id, $secuencia = 0) { $etapa = Doctrine::getTable('Etapa')->find($etapa_id); if (UsuarioSesion::usuario()->id != $etapa->usuario_id) { echo 'No tiene permisos para hacer seguimiento a este tramite.'; exit; } $paso = $etapa->getPasoEjecutable($secuencia); $data['etapa'] = $etapa; $data['paso'] = $paso; $data['secuencia'] = $secuencia; $data['sidebar'] = 'participados'; $data['title'] = 'Historial - ' . $etapa->Tarea->nombre; $data['content'] = 'etapas/ver'; $this->load->view('template', $data); }
} echo $tramite_descripcion != '' ? $tramite_descripcion : $t->Proceso->nombre; ?> </td> <td> <?php $etapas_array = array(); foreach ($t->getEtapasActuales() as $e) $etapas_array[] = $e->Tarea->nombre; echo implode(', ', $etapas_array); ?> </td> <td class="time"><?= strftime('%d.%b.%Y', mysql_to_unix($t->updated_at)) ?><br /><?= strftime('%H:%M:%S', mysql_to_unix($t->updated_at)) ?></td> <td><?= $t->pendiente ? 'Pendiente' : 'Completado' ?></td> <td class="actions"> <?php $etapas = $t->getEtapasParticipadas(UsuarioSesion::usuario()->id) ?> <?php if (count($etapas) == 3e4354) : ?> <a href="<?= site_url('etapas/ver/' . $etapas[0]->id) ?>" class="btn btn-primary">Ver historial</a> <?php else: ?> <div class="btn-group"> <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"> Ver historial <span class="caret"></span> </a> <ul class="dropdown-menu"> <?php foreach ($etapas as $e): ?> <li><a href="<?= site_url('etapas/ver/' . $e->id) ?>"><?= $e->Tarea->nombre ?></a></li> <?php endforeach ?> </ul> </div> <?php endif ?>
public function descargar_form() { if (!Cuenta::cuentaSegunDominio()->descarga_masiva) { echo 'Servicio no tiene permisos para descargar.'; exit; } if (!UsuarioSesion::usuario()->registrado) { echo 'Usuario no tiene permisos para descargar.'; exit; } $tramites = $this->input->post('tramites'); $opcionesDescarga = $this->input->post('opcionesDescarga'); $tramites = explode(",", $tramites); $ruta_documentos = 'uploads/documentos/'; $ruta_generados = 'uploads/datos/'; $ruta_tmp = 'uploads/tmp/'; $fecha = new DateTime(); $fecha = date_format($fecha, "Y-m-d"); $tipoDocumento = ""; switch ($opcionesDescarga) { case 'documento': $tipoDocumento = 'documento'; break; case 'dato': $tipoDocumento = 'dato'; break; } //Recorriendo los trámites $this->load->library('zip'); foreach ($tramites as $t) { if (empty($tipoDocumento)) { $files = Doctrine::getTable('File')->findByTramiteId($t); } else { $files = Doctrine::getTable('File')->findByTramiteIdAndTipo($t, $tipoDocumento); } if (count($files) > 0) { //Recorriendo los archivos foreach ($files as $f) { $tr = Doctrine::getTable('Tramite')->find($t); $participado = $tr->usuarioHaParticipado(UsuarioSesion::usuario()->id); if (!$participado) { echo 'Usuario no ha participado en el trámite.'; exit; } $nombre_documento = $tr->id; $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->valor == $f->filename) { $nombre_documento = $tra_nro->nombre; } if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } if ($f->tipo == 'documento' && !empty($nombre_documento)) { $path = $ruta_documentos . $f->filename; $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $tramite_nro = str_replace(" ", "", $tramite_nro); $nombre_archivo = pathinfo($path, PATHINFO_FILENAME); $ext = pathinfo($path, PATHINFO_EXTENSION); $new_file = $ruta_tmp . $nombre_documento . "." . $nombre_archivo . "." . $tramite_nro . "." . $ext; copy($path, $new_file); $this->zip->read_file($new_file); //Eliminación del archivo para no ocupar espacio en disco unlink($new_file); } elseif ($f->tipo == 'dato' && !empty($nombre_documento)) { $path = $ruta_generados . $f->filename; $this->zip->read_file($path); } } if (count($tramites) > 1) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; //creando un zip por cada trámite $this->zip->archive($ruta_tmp . $nombre . '.zip'); $this->zip->clear_data(); } } } if (count($tramites) > 1) { foreach ($tramites as $t) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; $this->zip->read_file($ruta_tmp . $nombre . '.zip'); } //Eliminando los archivos antes de descargar foreach ($tramites as $t) { $tr = Doctrine::getTable('Tramite')->find($t); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; unlink($ruta_tmp . $nombre . '.zip'); } $this->zip->download('tramites.zip'); } else { $tr = Doctrine::getTable('Tramite')->find($tramites); $tramite_nro = ''; foreach ($tr->getValorDatoSeguimiento() as $tra_nro) { if ($tra_nro->nombre == 'tramite_ref') { $tramite_nro = $tra_nro->valor; } } $tramite_nro = $tramite_nro != '' ? $tramite_nro : $tr->Proceso->nombre; $nombre = $fecha . "_" . $t . "_" . $tramite_nro; $this->zip->download($nombre . '.zip'); } }
function check_email($email) { $usuario = Doctrine::getTable('Usuario')->findOneByEmailAndOpenId($email, 0); if (!$usuario || $usuario == UsuarioSesion::usuario()) { return TRUE; } $this->form_validation->set_message('check_email', 'Correo electrónico ya esta en uso por otro usuario.'); return FALSE; }
echo site_url('tramites/iniciar/' . $p->id); ?> "><?php echo $p->nombre; ?> </a> <?php } ?> <?php } ?> </td> <td class="actions"> <?php if ($p->canUsuarioIniciarlo(UsuarioSesion::usuario()->id)) { ?> <a href="<?php echo site_url('tramites/iniciar/' . $p->id); ?> " class="btn btn-primary preventDoubleRequest"><i class="icon-file icon-white"></i> Iniciar</a> <?php } else { ?> <?php if ($p->getTareaInicial()->acceso_modo == 'claveunica') { ?> <a href="<?php echo site_url('autenticacion/login_openid'); ?> ?redirect=<?php
<div class="span3"> <ul id="sideMenu" class="nav nav-list"> <li class="iniciar <?php echo isset($sidebar) && $sidebar == 'disponibles' ? 'active' : ''; ?> "><a href="<?php echo site_url('tramites/disponibles'); ?> ">Iniciar trámite</a></li> <?php if (UsuarioSesion::usuario()->registrado) { ?> <?php $npendientes = Doctrine::getTable('Etapa')->findPendientes(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); $nsinasignar = Doctrine::getTable('Etapa')->findSinAsignar(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); $nparticipados = Doctrine::getTable('Tramite')->findParticipados(UsuarioSesion::usuario()->id, Cuenta::cuentaSegunDominio())->count(); ?> <li class="<?php echo isset($sidebar) && $sidebar == 'inbox' ? 'active' : ''; ?> "><a href="<?php echo site_url('etapas/inbox'); ?> ">Bandeja de Entrada (<?php echo $npendientes; ?> )</a></li> <?php if ($nsinasignar) { ?> <li class="<?php