/** * 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; }
/** * 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') { //Cerrar Sesión $usuario = Session::get('id'); if (DwAuth::logout()) { //Registro la salida Acceso::setAcceso(Acceso::SALIDA, $usuario); return TRUE; } Flash::error(DwAuth::getError()); } else { if ($opt == 'open') { //Abrir Sesión if (DwAuth::isLogged()) { return TRUE; } else { if (DwForm::isValidToken()) { //Si el formulario es válido if (DwAuth::login(array('login' => $user), array('password' => $pass), $mode)) { $usuario = self::getUsuarioLogueado(); if ($usuario->perfil_id != Perfil::SUPER_USUARIO && $usuario->estado_usuario != EstadoUsuario::ACTIVO) { DwAuth::logout(); Flash::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("ip", DwUtils::getIp()); Session::set('perfil', $usuario->perfil); //Registro el acceso Acceso::setAcceso(Acceso::ENTRADA, $usuario->id); Flash::info("¡ Bienvenido <strong>{$usuario->login}</strong> !."); return TRUE; } else { Flash::error(DwAuth::getError()); } } else { Flash::info('La llave de acceso ha caducado. <br />Por favor ' . Html::link('sistema/login/entrar/', 'recarga la página <b>aquí</b>')); } } } else { Flash::error('No se ha podido establecer la sesión actual.'); } } return FALSE; }
/** * 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 setear el stilo del formulario */ public static function setStyleForm($style = 'form-vertical') { self::$_style = $style; //Valido si se muestra el label o el help block según el tipo de formulario self::$_show_label = (self::$_style == 'form-search' or self::$_style == 'form-inline') ? FALSE : TRUE; self::$_help_block = self::$_style == 'form-search' ? FALSE : TRUE; }
/** * Método que utiliza los atributos de un input o form para aplicar parámetros por defecto * @param type $attrs * @param type $type * @return string */ protected static function _getAttrsClass($attrs, $type) { if ($type == 'form' or $type == 'form-multipart') { $formAjax = APP_AJAX && Session::get('app_ajax') ? TRUE : FALSE; if (isset($attrs['class'])) { if (preg_match("/\\bno-ajax\\b/i", $attrs['class'])) { $formAjax = false; } //Verifico si está definida la clase dw-form if (!preg_match("/\\bdw-form\\b/i", $attrs['class'])) { $attrs['class'] = 'dw-form ' . $attrs['class']; } //Verifico si está definida la clase para ajax, pero si no se encuentra el aplicativo para ajax if (preg_match("/\\bjs-remote\\b/i", $attrs['class']) && !$formAjax) { $formAjax = TRUE; } //Verifico si el aplicativo está con ajax if ($formAjax) { //Verifico si está definida la clase para ajax if (!preg_match("/\\bjs-remote\\b/i", $attrs['class'])) { $attrs['class'] = 'js-remote ' . $attrs['class']; } if (!preg_match("/\\bdw-no-validate\\b/i", $attrs['class'])) { $attrs['class'] = 'dw-validate ' . $attrs['class']; } } } else { //Asigno que pertenece a la clase dw-form y si utiliza ajax $attrs['class'] = $formAjax ? 'dw-form dw-validate js-remote' : 'dw-form'; } if ($formAjax && !isset($attrs['data-to'])) { //Si es un form con ajax verifico si está definido el data-div $attrs['data-to'] = 'dw-shell-content'; } if (!isset($attrs['id'])) { //Verifico si está definido el id $attrs['id'] = 'form-' . self::$_form; } if (!isset($attrs['name'])) { //Verifico si está definido el name $attrs['name'] = $attrs['id']; } self::$_style = isset($attrs['style-form']) ? $attrs['style-form'] : 'form-vertical'; self::$_show_label = (self::$_style == 'form-search' or self::$_style == 'form-inline') ? false : true; self::$_help_block = self::$_style == 'form-search' ? false : true; self::$_name['id'] = $attrs['id']; self::$_name['name'] = $attrs['name']; //asigno el estilo al formulario $attrs['class'] = $attrs['class'] . ' ' . self::$_style; self::$_form++; } else { if (isset($attrs['class'])) { //Verifico las clases segun el tipo text, select, textarea, file, numeric, date if (!preg_match("/\\b{$type}\\b/i", $attrs['class'])) { $attrs['class'] = $type . ' ' . $attrs['class']; } //Verifico si está la clase field if (!preg_match("/\\bfield\\b/i", $attrs['class'])) { $attrs['class'] = 'field ' . $attrs['class']; } //Verifico si el campo es moneda if (preg_match("/\\binput-money\\b/i", $attrs['class'])) { //@see var.js $attrs['onkeyup'] = 'jsMiles(this,this.value.charAt(this.value.length-1))'; } } else { //Si no está definida las clases las asigno según el tipo $attrs['class'] = $type != 'checkbox' && $type != 'radio' ? "field {$type} input-full " : "field {$type} "; } //Verifico si se utiliza la mayúscula solo para los text y textarea if ($type == 'text' && $type == 'textarea') { if (!preg_match("/\\binput-lower\\b/i", $attrs['class']) or preg_match("/\\binput-upper\\b/i", $attrs['class'])) { $attrs['onchange'] = !isset($attrs['onchange']) ? 'this.value=this.value.toUpperCase()' : rtrim($attrs['onchange'], ';') . '; this.value=this.value.toUpperCase()'; } } //Reviso si es readonly if (preg_match("/\\breadonly\\b/i", $attrs['class'])) { $attrs['readonly'] = 'readonly'; } //Reviso si esta deshabilitado if (preg_match("/\\bdisabled\\b/i", $attrs['class'])) { $attrs['disabled'] = 'disabled'; } //Verifico si es requerido if (preg_match("/\\binput-required\\b/i", $attrs['class'])) { $attrs['required'] = 'required'; } //Verifico el data-action del input (cuando utiliza ajax) if (isset($attrs['data-action'])) { $attrs['data-action'] = PUBLIC_PATH . trim($attrs['data-action'], '/') . '/'; } } return $attrs; }