Exemplo n.º 1
0
 /**
  * Método para agregar
  */
 public function agregar()
 {
     if (Input::hasPost('usuario') && Input::hasPost('usuario_clave')) {
         ActiveRecord::beginTrans();
         //Guardo usuario
         $usuario = Usuario::setUsuario('create', Input::post('usuario'));
         if ($usuario) {
             if (UsuarioClave::setClave('create', Input::post('usuario_clave'), array('usuario_id' => $usuario->id))) {
                 ActiveRecord::commitTrans();
                 DwMessage::valid('El Usuario se ha creado correctamente.');
                 return DwRedirect::toAction('listar');
             }
         } else {
             ActiveRecord::rollbackTrans();
         }
     }
     $this->page_title = 'Agregar Usuario';
 }
Exemplo n.º 2
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 $otherData: Data adicional para autocargar
  * 
  * @return object ActiveRecord
  */
 public static function setClave($method, $data, $optData = null)
 {
     $obj = new UsuarioClave($data);
     if ($optData) {
         $obj->dump_result_self($optData);
     }
     if (!empty($obj->id)) {
         //Si va a actualizar
         $old = new UsuarioClave();
         $old->find_first($obj->id);
         if (!empty($obj->oldpassword)) {
             //Si cambia de claves
             if (empty($obj->password) or empty($obj->repassword)) {
                 DwMessage::error("Indica la nueva contraseña");
                 return false;
             }
             $obj->oldpassword = md5(sha1(strtoupper($obj->oldpassword)));
             if ($obj->oldpassword !== $old->password) {
                 DwMessage::error("La contraseña anterior no coincide con la registrada. Verifica los datos e intente nuevamente");
                 return false;
             }
         }
     }
     //Verifico si las contraseñas coinciden (password y repassword)
     if (!empty($obj->password) && !empty($obj->repassword) or $method == 'create') {
         if ($method == 'create' && empty($obj->password)) {
             DwMessage::error("Indica la contraseña para el inicio de sesión");
             return false;
         }
         $obj->password = md5(sha1(strtoupper($obj->password)));
         //$obj->repassword = md5(sha1($obj->repassword)); mientras luego borrar lo de abajo
         $obj->repassword = $obj->password;
         if ($obj->password !== $obj->repassword) {
             DwMessage::error('Las contraseñas no coinciden. Verifica los datos e intenta nuevamente.');
             return 'cancel';
         }
     } else {
         if (isset($obj->id)) {
             //Mantengo la contraseña anterior
             $obj->password = $old->password;
         }
     }
     $obj->fecha_inicio = date('Y-m-d');
     $configseg = new Configuracion();
     $configseg1 = $configseg->getInformacionConfiguracion();
     $nuevafecha = strtotime('+' . $configseg1->dias_caducidad_clave . ' day', strtotime($obj->fecha_inicio));
     $nuevafecha = date('Y-m-j', $nuevafecha);
     $obj->fecha_fin = $nuevafecha;
     //return DwMessage::error('La configuracion es: '.$configseg1->dias_caducidad_clave.' la fecha inicio es: '.$obj->fecha_inicio.' la fecha final es: '.$nuevafecha.'.');
     //$fecha = date('Y-m-j');
     //$nuevafecha = strtotime ( '+2 day' , strtotime ( $fecha ) ) ;
     //$nuevafecha = date ( 'Y-m-j' , $nuevafecha );
     //echo $nuevafecha;
     $rs = $obj->{$method}();
     if ($rs) {
         $method == 'create' ? DwAudit::debug("Se ha registrado el usuario {$obj->usuario_id} en el sistema") : DwAudit::debug("Se ha modificado la información del usuario {$obj->usuario_id}");
     }
     return $rs ? $obj : FALSE;
 }
Exemplo n.º 3
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 editar
  */
 public function editar($key)
 {
     if (!($id = DwSecurity::isValidKey($key, 'upd_usuario_clave', 'int'))) {
         return DwRedirect::toAction('listar');
     }
     $usuario_clave = new UsuarioClave();
     if (!$usuario_clave->getInformacionUsuarioClave($id)) {
         DwMessage::get('id_no_found');
         return DwRedirect::toAction('listar');
     }
     if (Input::hasPost('usuario_clave')) {
         if (DwSecurity::isValidKey(Input::post('usuario_clave_id_key'), 'form_key')) {
             ActiveRecord::beginTrans();
             //Guardo la titular
             $titular = titular::settitular('update', Input::post('titular'), array('id' => $usuario->titular_id));
             if ($titular) {
                 if (Usuario::setUsuario('update', Input::post('usuario_clave'), array('titular_id' => $titular->id, 'repassword' => Input::post('repassword'), 'id' => $usuario->id, 'login' => $usuario->login))) {
                     ActiveRecord::commitTrans();
                     DwMessage::valid('El usuario se ha actualizado correctamente.');
                     return DwRedirect::toAction('listar');
                 }
             } else {
                 ActiveRecord::rollbackTrans();
             }
         }
     }
     $this->temas = DwUtils::getFolders(dirname(APP_PATH) . '/public/css/backend/themes/');
     $this->usuario = $usuario;
     $this->page_title = 'Actualizar usuario';
 }