示例#1
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 (MkcAuth::logout()) {
             //Registro la salida
             Acceso::setAcceso(Acceso::SALIDA, $usuario);
             return true;
         }
         MkcMessage::error(MkcAuth::getError());
     } else {
         if ($opt == 'open') {
             if (MkcAuth::isLogged()) {
                 return true;
             } else {
                 if (MkcForm::isValidToken()) {
                     if (MkcAuth::login(array('login' => $user), array('password' => sha1($pass)), $mode)) {
                         $usuario = self::getUsuarioLogueado();
                         if ($usuario->id != 2 && $usuario->estado_usuario != EstadoUsuario::ACTIVO) {
                             MkcAuth::logout();
                             MkcMessage::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('cargo', $usuario->cargo);
                         Session::set('fotografia', $usuario->fotografia);
                         Session::set("ip", MkcUtils::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);
                         MkcMessage::info("¡ Bienvenido <strong>{$usuario->login}</strong> !.");
                         return true;
                     } else {
                         MkcMessage::error(MkcAuth::getError());
                     }
                 } else {
                     MkcMessage::info('La llave de acceso ha caducado. <br />Por favor ' . Html::link('sistema/login/entrar/', 'recarga la página <b>aquí</b>'));
                 }
             }
         } else {
             MkcMessage::error('No se ha podido establecer la sesión actual.');
         }
     }
     return false;
 }
示例#2
0
 /**
  * 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 mkc-form
             if (!preg_match("/\\bmkc-form\\b/i", $attrs['class'])) {
                 $attrs['class'] = 'mkc-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("/\\bmkc-no-validate\\b/i", $attrs['class'])) {
                     $attrs['class'] = 'mkc-validate ' . $attrs['class'];
                 }
             }
         } else {
             //Asigno que pertenece a la clase mkc-form y si utiliza ajax
             $attrs['class'] = $formAjax ? 'mkc-form mkc-validate js-remote' : 'mkc-form';
         }
         if ($formAjax && !isset($attrs['data-to'])) {
             //Si es un form con ajax verifico si está definido el data-div
             $attrs['data-to'] = 'mkc-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;
 }