示例#1
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 iniciar sesión
  */
 public function entrar()
 {
     if (Input::hasPost('login') && Input::hasPost('password') && Input::hasPost('mode')) {
         if (Usuario::setSession('open', Input::post('login'), Input::post('password'))) {
             return DwRedirect::to('dashboard/');
         }
     } else {
         if (DwAuth::isLogged()) {
             return DwRedirect::to('dashboard/');
         }
     }
 }
示例#3
0
 /**
  * Método para iniciar sesión
  */
 public function entrar()
 {
     if (Input::hasPost('login') && Input::hasPost('password') && Input::hasPost('mode')) {
         if (Usuario::setSession('open', Input::post('login'), Input::post('password'))) {
             return Redirect::to('dashboard/');
         } else {
             //Se soluciona lo de la llave de seguridad
             return Redirect::toAction('entrar/');
         }
     } else {
         if (DwAuth::isLogged()) {
             return Redirect::to('dashboard/');
         }
     }
 }
示例#4
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;
 }
示例#5
0
文件: usuario.php 项目: arleincho/bee
 /**
  * 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 cambiar clave
  */
 public function cambiar_clave()
 {
     $this->page_title = 'Cambiar clave del usuario';
     $config = new Configuracion();
     $this->configs = $config->getInformacionConfiguracion();
     //DwMessage::warning('variable $config1: '.var_dump($config->getInformacionConfiguracion()).'');
     //$diasadicional = UsuarioClave::diasadicionales();
     //DwMessage::warning('variable $diasadicional: '.$this->config->dias_caducidad_clave.'');
     //return false;
     $usuval = UsuarioClave::clave_valida(Session::get('id'));
     //$id=Session::get('id');
     //$data = Input::post('usuario_clave');
     //Load::model('sistema/usuario_clave')->cambiar_clave($id, $data['password'], $data['repassword']);
     //DwMessage::warning('variable $data: '.var_dump($data).'');
     if ($usuval != 1) {
         if (Input::hasPost('usuario_clave')) {
             try {
                 $data = Input::post('usuario_clave');
                 $id = Session::get('id');
                 if (Load::model('sistema/usuario_clave')->cambiar_clave($id, $data['password'], $data['repassword'])) {
                     Flash::success('Cambio de clave realizado exitosamente.');
                     DwAuth::logout();
                     return Router::redirect('/sistema/login/entrar');
                 } else {
                     Input::delete();
                 }
             } catch (KumbiaException $kex) {
                 Input::delete();
                 Flash::warning("Lo sentimos ha ocurrido un error:");
                 Flash::error($kex->getMessage());
             }
         } else {
             DwMessage::info('clave aun es valida');
         }
     }
     //    DwMessage::warning('Clave aun es valida');
 }
示例#7
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;
 }
示例#8
0
 /**
  * @param string $_error
  */
 public static function setError($error)
 {
     self::$_error = $error;
 }