Exemplo n.º 1
0
 /**
  * Método para setear un Objeto
  * @param string    $method     Método a ejecutar (create, update)
  * @param array     $data       Array para autocargar el objeto
  * @param array     $optData    Array con con datos adicionales para autocargar
  */
 public static function setPersona($method, $data = array(), $optData = array())
 {
     $obj = new Persona($data);
     if (!empty($optData)) {
         $obj->dump_result_self($optData);
     }
     //Creo otro objeto para comparar si existe
     $old = new Persona($data);
     $check = $old->_getPersonaRegistrada('find_first');
     if ($check) {
         //Si existe
         if (empty($obj->id)) {
             $obj->id = $old->id;
             //Asigno el id del encontrado al nuevo
         } else {
             //Si se actualiza y existe otro con la misma información
             if ($obj->id != $old->id) {
                 DwMessage::info('Lo sentimos, pero ya existe una persona registrada con el mismo número de identificación');
                 return FALSE;
             }
         }
         if ($method == 'create') {
             //Si se crea la persona, pero ya está registrada la actualizo
             $method = 'update';
         }
     }
     $rs = $obj->{$method}();
     return $rs ? $obj : FALSE;
 }
Exemplo n.º 2
0
 /**
  * Callback que se ejecuta antes de los métodos de todos los controladores
  */
 protected final function initialize()
 {
     if (APP_UPDATE) {
         DwMessage::info('Estamos en labores de mantenimiento y actualización.');
         View::select(NULL, 'update');
     }
 }
Exemplo n.º 3
0
 /**
  * Método para cerrar sesión
  */
 public function salir($js = '')
 {
     if (Usuario::setSession('close')) {
         DwMessage::valid("La sesión ha sido cerrada correctamente.");
     }
     if ($js == 'no-script') {
         DwMessage::info('Activa el uso de JavaScript en su navegador para poder continuar.');
     }
     return DwRedirect::toAction('entrar/');
 }
Exemplo n.º 4
0
 /**
  * Callback que se ejecuta antes de los métodos de todos los controladores
  */
 protected final function initialize()
 {
     /**
      * Si el método de entrada es ajax, el tipo de respuesta es sólo la vista
      */
     if (Input::isAjax()) {
         View::template('sgc/sgc');
     }
     /**
      * Verifico que haya iniciado sesión
      */
     if (!DwAuth::isLogged()) {
         //Verifico que no genere una redirección infinita
         if ($this->controller_name != 'login' && ($this->action_name != 'entrar' && $this->action_name != 'salir')) {
             DwMessage::warning('No has iniciado sesión o ha caducado.');
             //Verifico que no sea una ventana emergente
             if ($this->module_name == 'reporte') {
                 View::error();
                 //TODO: crear el método error()
             } else {
                 DwRedirect::toLogin('sistema/login/entrar/');
             }
             return false;
         }
     } else {
         if (DwAuth::isLogged() && $this->controller_name != 'login') {
             $acl = new DwAcl();
             //Cargo los permisos y templates
             if (APP_UPDATE && Session::get('perfil_id') != Perfil::SUPER_USUARIO) {
                 //Solo el super usuario puede hacer todo
                 if ($this->module_name != 'dashboard' && $this->controller_name != 'index') {
                     $msj = 'Estamos en labores de actualización y mantenimiento.';
                     $msj .= '<br />';
                     $msj .= 'El servicio se reanudará dentro de ' . APP_UPDATE_TIME;
                     if (Input::isAjax()) {
                         View::update();
                     } else {
                         DwMessage::info($msj);
                         DwRedirect::to("dashboard");
                     }
                     return FALSE;
                 }
             }
             if (!$acl->check(Session::get('perfil_id'))) {
                 DwMessage::error('Tu no posees privilegios para acceder a <b>' . Router::get('route') . '</b>');
                 Input::isAjax() ? View::ajax() : View::select(NULL);
                 return false;
             }
             if (!defined('SKIN')) {
                 define('SKIN', Session::get('tema'));
             }
         }
     }
 }
 /**
  * Método para listar las autitorías del sistema
  * @param type $fecha
  * @return type
  */
 public function listar($fecha = '', $formato = 'html')
 {
     $fecha = empty($fecha) ? date("Y-m-d") : Filter::get($fecha, 'date');
     if (empty($fecha)) {
         DwMessage::info('Selecciona la fecha del archivo');
         return View::error();
     }
     $audits = Sistema::getAudit($fecha);
     $this->audits = $audits;
     $this->fecha = $fecha;
     $this->page_module = 'Auditorías del sistema ' . $fecha;
     $this->page_format = $formato;
 }
 /**
  * Método para listar las autitorías del sistema
  * @param type $fecha
  * @return type
  */
 public function listar($fecha = '', $page = 1)
 {
     $fecha = empty($fecha) ? date("Y-m-d") : Filter::get($fecha, 'date');
     if (empty($fecha)) {
         DwMessage::info('Selecciona la fecha del archivo');
         return DwRedirect::toAction('index');
     }
     $page = Filter::get($page, 'page') > 0 ? Filter::get($page, 'page') : 1;
     $audits = Sistema::getAudit($fecha, $page);
     $this->audits = $audits;
     $this->fecha = $fecha;
     $this->page_module = 'Auditorías del sistema ' . $fecha;
 }
Exemplo n.º 7
0
 /**
  * Método para buscar
  */
 public function buscar($field = 'nombres', $value = 'none', $order = 'order.fecha.asc', $page = 1)
 {
     $page = Filter::get($page, 'page') > 0 ? Filter::get($page, 'page') : 1;
     $field = Input::hasPost('field') ? Input::post('field') : $field;
     $value = Input::hasPost('field') ? Input::post('value') : $value;
     $acceso = new Acceso();
     $accesos = $acceso->getAjaxAcceso($field, $value, $order, $page);
     if (empty($accesos->items)) {
         DwMessage::info('No se han encontrado registros');
     }
     $this->accesos = $accesos;
     $this->order = $order;
     $this->field = $field;
     $this->value = $value;
     $this->page_title = 'Búsqueda de ingresos al sistema';
 }
Exemplo n.º 8
0
 /**
  * Método para buscar
  */
 public function buscar($field = 'denominacion', $value = 'none', $order = 'order.id.asc', $page = 1)
 {
     $page = Filter::get($page, 'page') > 0 ? Filter::get($page, 'page') : 1;
     $field = Input::hasPost('field') ? Input::post('field') : $field;
     $value = Input::hasPost('field') ? Input::post('value') : $value;
     $backup = new Backup();
     $backups = $backup->getAjaxBackup($field, $value, $order, $page);
     if (empty($backups->items)) {
         DwMessage::info('No se han encontrado registros');
     }
     $this->backups = $backups;
     $this->order = $order;
     $this->field = $field;
     $this->value = $value;
     $this->page_title = 'Búsqueda de copias de seguridad';
 }
Exemplo n.º 9
0
 /**
  * Método para abrir y cerrar sesión
  * @param type $opt
  * @return boolean
  */
 public static function setSession($opt = 'open', $user = NULL, $pass = NULL, $mode = NULL)
 {
     if ($opt == 'close') {
         $usuario = Session::get('id');
         if (DwAuth::logout()) {
             //Registro la salida
             Acceso::setAcceso(Acceso::SALIDA, $usuario);
             return true;
         }
         DwMessage::error(DwAuth::getError());
     } else {
         if ($opt == 'open') {
             if (DwAuth::isLogged()) {
                 return true;
             } else {
                 if (DwForm::isValidToken()) {
                     if (DwAuth::login(array('login' => $user), array('password' => sha1($pass)), $mode)) {
                         $usuario = self::getUsuarioLogueado();
                         if ($usuario->id != 2 && $usuario->estado_usuario != EstadoUsuario::ACTIVO) {
                             DwAuth::logout();
                             DwMessage::error('Lo sentimos pero tu cuenta se encuentra inactiva. <br />Si esta información es incorrecta contacta al administrador del sistema.');
                             return false;
                         }
                         Session::set('nombre', $usuario->nombre);
                         Session::set('apellido', $usuario->apellido);
                         Session::set('foto', $usuario->fotografia);
                         Session::set("ip", DwUtils::getIp());
                         Session::set('perfil', $usuario->perfil);
                         Session::set('tema', $usuario->tema);
                         Session::set('app_ajax', $usuario->app_ajax);
                         //Registro el acceso
                         Acceso::setAcceso(Acceso::ENTRADA, $usuario->id);
                         DwMessage::info("¡ Bienvenido <strong>{$usuario->login}</strong> !.");
                         return true;
                     } else {
                         DwMessage::error(DwAuth::getError());
                     }
                 } else {
                     DwMessage::info('La llave de acceso ha caducado. <br />Por favor ' . Html::link('sistema/login/entrar/', 'recarga la página <b>aquí</b>'));
                 }
             }
         } else {
             DwMessage::error('No se ha podido establecer la sesión actual.');
         }
     }
     return false;
 }
Exemplo n.º 10
0
 /**
  * Método para las execpciones
  */
 public static function exception(KumbiaException $e)
 {
     if (PRODUCTION) {
         $counter = Session::has('exception_counter') ? Session::get('exception_counter') : 1;
         Session::set('exception_counter', $counter++);
         DwMessage::warning('Oops! hemos realizado algún procedimiento mal... <br />Inténtalo nuevamente!');
     } else {
         DwMessage::error($e->getMessage());
         DwMessage::error("Detalle del error: " . $e->getTraceAsString());
     }
     if (Session::has('exception_counter')) {
         if (Session::get('exception_counter') > 2) {
             DwMessage::info('Si el problema persiste contacta con el administrador del sistema.');
             Sesion::set('exception_counter', 0);
         }
     }
 }
Exemplo n.º 11
0
 /**
  * Método para buscar
  */
 public function buscar($field = 'sucursal', $value = 'none', $order = 'order.id.asc', $page = 1)
 {
     $page = Filter::get($page, 'page') > 0 ? Filter::get($page, 'page') : 1;
     $field = Input::hasPost('field') ? Input::post('field') : $field;
     $value = Input::hasPost('field') ? Input::post('value') : $value;
     $value = strtoupper($value);
     $profesion = new Profesion();
     $profesiones = $profesion->getAjaxProfesiones($field, $value, $order, $page);
     if (empty($profesiones->items)) {
         DwMessage::info('No se han encontrado registros');
     }
     $this->profesiones = $profesiones;
     $this->order = $order;
     $this->field = $field;
     $this->value = $value;
     $this->page_title = 'Búsqueda de profesiones del sistema';
 }
Exemplo n.º 12
0
 /**
  * Método para buscar
  */
 public function buscar($field = 'nombre1', $value = 'none', $order = 'order.id.asc', $page = 1)
 {
     $page = Filter::get($page, 'page') > 0 ? Filter::get($page, 'page') : 1;
     $field = Input::hasPost('field') ? Input::post('field') : $field;
     $value = Input::hasPost('field') ? Input::post('value') : $value;
     $value = strtoupper($value);
     $equipo = new Hequipo();
     $equipos = $equipo->getAjaxReembolsos($field, $value, $order, $page);
     if (empty($equipos->items)) {
         DwMessage::info('No se han encontrado registros');
     }
     $this->equipos = $equipos;
     $this->order = $order;
     $this->field = $field;
     $this->value = $value;
     $this->page_title = 'Búsqueda de Reemnbolsos del sistema';
 }
Exemplo n.º 13
0
 /**
  * Método para inactivar/reactivar
  */
 public function estado($tipo, $key)
 {
     if (!($id = DwSecurity::isValidKey($key, $tipo . '_usuario', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $usuario = new Usuario();
     if (!$usuario->getInformacionUsuario($id)) {
         DwMessage::get('id_no_found');
         return DwRedirect::toAction('listar');
     }
     if ($tipo == 'reactivar' && $usuario->estatus == 1) {
         DwMessage::info('El usuario ya se encuentra activo.');
         return DwRedirect::toAction('listar');
     } else {
         if ($tipo == 'reactivar' && $usuario->estatus == 2) {
             $usr = $usuario->getInformacionUsuario($id);
             $usr->estatus = 1;
             $usr->save();
             return DwRedirect::toAction('listar');
         } else {
             if ($tipo == 'bloquear' && $usuario->estatus == 2) {
                 DwMessage::info('El usuario ya se encuentra bloqueado.');
                 return DwRedirect::toAction('listar');
             } else {
                 if ($tipo == 'bloquear' && $usuario->estatus == 1) {
                     $usr = $usuario->getInformacionUsuario($id);
                     $usr->estatus = 2;
                     $usr->save();
                     return DwRedirect::toAction('listar');
                 }
             }
         }
     }
 }
Exemplo n.º 14
0
 /**
  * Método para crear/modificar un objeto de base de datos
  * 
  * @param string $medthod: create, update
  * @param array $data: Data para autocargar el modelo
  * @param array $optData: Data adicional para autocargar
  * 
  * return object ActiveRecord
  */
 public static function setRecurso($method, $data, $optData = null)
 {
     $obj = new Recurso($data);
     //Se carga los datos con los de las tablas
     if ($optData) {
         //Se carga información adicional al objeto
         $obj->dump_result_self($optData);
     }
     //Verifico que no exista otro recurso, y si se encuentra inactivo lo active
     $conditions = empty($obj->id) ? "modulo='{$obj->modulo}' AND controlador='{$obj->controlador}' AND accion='{$obj->accion}'" : "modulo='{$obj->modulo}' AND controlador='{$obj->controlador}' AND accion='{$obj->accion}' AND id != '{$obj->id}'";
     $old = new Recurso();
     if ($old->find_first($conditions)) {
         if ($method == 'create' && $old->activo != Recurso::ACTIVO) {
             $obj->id = $old->id;
             $obj->activo = Recurso::ACTIVO;
             $method = 'update';
         } else {
             DwMessage::info('Ya existe un recurso registrado bajo esos parámetros.');
             return FALSE;
         }
     }
     return $obj->{$method}() ? $obj : FALSE;
 }
Exemplo n.º 15
0
 /**
  * Método para abrir y cerrar sesión
  * @param type $opt
  * @return boolean
  */
 public static function setSession($opt = 'open', $user = NULL, $pass = NULL, $mode = NULL)
 {
     if ($opt == 'close') {
         $usuario = Session::get('id');
         if (DwAuth::logout()) {
             //Registro la salida
             Acceso::setAcceso(Acceso::SALIDA, $usuario);
             return true;
         }
         DwMessage::error(DwAuth::getError());
     } else {
         if ($opt == 'open') {
             if (DwAuth::isLogged()) {
                 return true;
             } else {
                 if (DwForm::isValidToken()) {
                     if (DwAuth::login(array('login' => strtoupper($user)), array('password' => sha1(strtoupper($pass))), $mode)) {
                         $usuario = self::getUsuarioLogueado();
                         $usuval = UsuarioClave::clave_valida($usuario->id);
                         $usuintentos = self::usuario_intentos($usuario->id);
                         if ($usuario->estatus != 1) {
                             DwAuth::logout();
                             DwMessage::error('Lo sentimos pero tu cuenta se encuentra inactiva. <br />Si esta información es incorrecta contacta al administrador del sistema.');
                             return false;
                         }
                         if ($usuintentos == 2) {
                             // DwAuth::logout();
                             //Session::set('perfil_id', '8');
                             //Session::set('tema', 'default');
                             //Session::set('nombre1', $usuario->nombre1);
                             //Session::set('apellido1', $usuario->apellido1);
                             //return DwRedirect::to('sistema/usuario_clave/cambiar_clave');
                             //DwMessage::error('usuintentos. '.$usuintentos.'<br />Si esta información es incorrecta contacta al administrador del sistema.');
                         }
                         if ($usuval != 1) {
                             // DwAuth::logout();
                             Session::set('perfil_id', '8');
                             Session::set('tema', 'default');
                             Session::set('nombres', $usuario->nombres);
                             Session::set('apellidos', $usuario->apellidos);
                             return DwRedirect::to('sistema/usuario_clave/cambiar_clave');
                         }
                         Session::set('nombres', $usuario->nombres);
                         Session::set('apellidos', $usuario->apellidos);
                         Session::set('ip', DwUtils::getIp());
                         Session::set('perfil', $usuario->perfil);
                         Session::set('tema', $usuario->tema);
                         Session::set('app_ajax', $usuario->app_ajax);
                         //Registro el acceso
                         Acceso::setAcceso(Acceso::ENTRADA, $usuario->id);
                         DwMessage::info("¡ Bienvenido <strong>{$usuario->nombres} {$usuario->apellidos}</strong> !.");
                         return true;
                     } else {
                         DwMessage::error(DwAuth::getError());
                     }
                 } else {
                     DwMessage::info('La llave de acceso ha caducado. <br />Por favor ' . Html::link('sistema/login/entrar/', 'recarga la página <b>aquí</b>'));
                 }
             }
         } else {
             DwMessage::error('No se ha podido establecer la sesión actual.');
         }
     }
     return false;
 }
 /**
  * Método para inactivar/reactivar
  */
 public function estado($tipo, $key)
 {
     if (!($id = DwSecurity::isValidKey($key, $tipo . '_usuario', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $usuario = new Usuario();
     if (!$usuario->getInformacionUsuario($id)) {
         DwMessage::get('id_no_found');
         return DwRedirect::toAction('listar');
     }
     if ($tipo == 'reactivar' && $usuario->estado_usuario == EstadoUsuario::ACTIVO) {
         DwMessage::info('El usuario ya se encuentra activo.');
         return DwRedirect::toAction('listar');
     } else {
         if ($tipo == 'bloquear' && $usuario->estado_usuario == EstadoUsuario::BLOQUEADO) {
             DwMessage::info('El usuario ya se encuentra bloqueado.');
             return DwRedirect::toAction('listar');
         }
     }
     if (Input::hasPost('estado_usuario')) {
         if (EstadoUsuario::setEstadoUsuario($tipo, Input::post('estado_usuario'), array('usuario_id' => $usuario->id))) {
             $tipo == 'reactivar' ? DwMessage::valid('El usuario se ha reactivado correctamente!') : DwMessage::valid('El usuario se ha bloqueado correctamente!');
             return DwRedirect::toAction('listar');
         }
     }
     $this->page_title = $tipo == 'reactivar' ? 'Reactivación de usuario' : 'Bloqueo de usuario';
     $this->usuario = $usuario;
 }
Exemplo n.º 17
0
 /**
  * Método para crear/modificar un objeto de base de datos
  * 
  * @param string $medthod: create, update
  * @param array $data: Data para autocargar el modelo
  * @param array $optData: Data adicional para autocargar
  * 
  * return object ActiveRecord
  */
 public static function setPerfil($method, $data, $optData = null)
 {
     $obj = new Perfil($data);
     //Se carga los datos con los de las tablas
     if ($optData) {
         //Se carga información adicional al objeto
         $obj->dump_result_self($optData);
     }
     //Verifico que no exista otro perfil, y si se encuentra inactivo lo active
     $conditions = empty($obj->id) ? "perfil = '{$obj->perfil}'" : "perfil = '{$obj->perfil}' AND id != '{$obj->id}'";
     $old = new Perfil();
     if ($old->find_first($conditions)) {
         if ($method == 'create' && $old->estado != Perfil::ACTIVO) {
             $obj->id = $old->id;
             $obj->estado = Perfil::ACTIVO;
             $method = 'update';
         } else {
             DwMessage::info('Ya existe un perfil registrado bajo ese nombre.');
             return FALSE;
         }
     }
     return $obj->{$method}() ? $obj : FALSE;
 }
Exemplo n.º 18
0
 /**
  * Método para crear/modificar un objeto de base de datos
  * 
  * @param string $medthod: create, update
  * @param array $data: Data para autocargar el modelo
  * @param array $optData: Data adicional para autocargar
  * 
  * return object ActiveRecord
  */
 public static function setMenu($method, $data, $optData = null)
 {
     $obj = new Menu($data);
     //Se carga los datos con los de las tablas
     if ($optData) {
         //Se carga información adicional al objeto
         $obj->dump_result_self($optData);
     }
     //Verifico que no exista otro menu, y si se encuentra inactivo lo active
     $conditions = empty($obj->id) ? "recurso_id='{$obj->recurso_id}' AND visibilidad={$obj->visibilidad}" : "recurso_id='{$obj->recurso_id}' AND visibilidad={$obj->visibilidad} AND id != '{$obj->id}'";
     $old = new Menu();
     if ($old->find_first($conditions)) {
         if ($method == 'create' && $old->activo != Menu::ACTIVO) {
             $obj->id = $old->id;
             $obj->activo = Menu::ACTIVO;
             $method = 'update';
         } else {
             DwMessage::info('Ya existe un menú registrado para ese recurso y visibilidad.');
             return FALSE;
         }
     }
     return $obj->{$method}() ? $obj : FALSE;
 }
Exemplo n.º 19
0
 /**
  * Método para inactivar/reactivar
  */
 public function estado($tipo, $key)
 {
     if (!($id = DwSecurity::isValidKey($key, $tipo . '_perfil', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $perfil = new Perfil();
     if (!$perfil->find_first($id)) {
         DwMessage::get('id_no_found');
     } else {
         if ($tipo == 'inactivar' && $perfil->estado == Perfil::INACTIVO) {
             DwMessage::info('El perfil ya se encuentra inactivo');
         } else {
             if ($tipo == 'reactivar' && $perfil->estado == Perfil::ACTIVO) {
                 DwMessage::info('El perfil ya se encuentra activo');
             } else {
                 $estado = $tipo == 'inactivar' ? Perfil::INACTIVO : Perfil::ACTIVO;
                 if (Perfil::setPerfil('update', $perfil->to_array(), array('id' => $id, 'estado' => $estado))) {
                     $estado == Perfil::ACTIVO ? DwMessage::valid('El perfil se ha reactivado correctamente!') : DwMessage::valid('El perfil se ha inactivado correctamente!');
                 }
             }
         }
     }
     return DwRedirect::toAction('listar');
 }
Exemplo n.º 20
0
 /**
  * Método para inactivar/reactivar
  */
 public function estado($tipo, $key)
 {
     if (!($id = DwSecurity::isValidKey($key, $tipo . '_recurso', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $recurso = new Recurso();
     if (!$recurso->find_first($id)) {
         DwMessage::get('id_no_found');
     } else {
         if ($recurso->id <= 16) {
             DwMessage::warning('Lo sentimos, pero este recurso no se puede editar.');
             return DwRedirect::toAction('listar');
         }
         if ($tipo == 'inactivar' && $recurso->activo == Recurso::INACTIVO) {
             DwMessage::info('El recurso ya se encuentra inactivo');
         } else {
             if ($tipo == 'reactivar' && $recurso->activo == Recurso::ACTIVO) {
                 DwMessage::info('El recurso ya se encuentra activo');
             } else {
                 $estado = $tipo == 'inactivar' ? Recurso::INACTIVO : Recurso::ACTIVO;
                 if (Recurso::setRecurso('update', $recurso->to_array(), array('id' => $id, 'activo' => $estado))) {
                     $estado == Recurso::ACTIVO ? DwMessage::valid('El recurso se ha reactivado correctamente!') : DwMessage::valid('El recurso se ha inactivado correctamente!');
                 }
             }
         }
     }
     return DwRedirect::toAction('listar');
 }
Exemplo n.º 21
0
 /**
  * Método para inactivar/reactivar
  */
 public function estado($tipo, $key)
 {
     if (!($id = DwSecurity::isValidKey($key, $tipo . '_menu', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $menu = new Menu();
     if (!$menu->find_first($id)) {
         DwMessage::get('id_no_found');
     } else {
         if ($menu->id <= 2) {
             DwMessage::warning('Lo sentimos, pero este menú no se puede editar.');
             return DwRedirect::toAction('listar');
         }
         if ($tipo == 'inactivar' && $menu->activo == Menu::INACTIVO) {
             DwMessage::info('El menú ya se encuentra inactivo');
         } else {
             if ($tipo == 'reactivar' && $menu->activo == Menu::ACTIVO) {
                 DwMessage::info('El menú ya se encuentra activo');
             } else {
                 $estado = $tipo == 'inactivar' ? Menu::INACTIVO : Menu::ACTIVO;
                 if (Menu::setMenu('update', $menu->to_array(), array('id' => $id, 'activo' => $estado))) {
                     $estado == Menu::ACTIVO ? DwMessage::valid('El menú se ha reactivado correctamente!') : DwMessage::valid('El menú se ha inactivado correctamente!');
                 }
             }
         }
     }
     return DwRedirect::toAction('listar');
 }