/** * 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'; }
/** * 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; }
/** * 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'; }