/* * Esta funcion esta conectada al boton de iniciar sesion */ protected void Button_Login_Click(object sender, EventArgs e) { UserNotVerifiedError_Login.Visible = WrongPasswordError_Login.Visible = UserNotExistsError_Login.Visible = false; //Reiniciamos los errores para que si a la proxima le salen bien no les vuelva a salir User_EN busqueda = new User_EN(); User_EN usuario = busqueda.BuscarUsuario(username_login_input.Text); //Buscamos el usuario que introducimos para iniciar sesion if (usuario != null) { if (usuario.Contraseña == password_login_input.Text) { if (usuario.Verified) { Session["user_session_data"] = usuario; //Creamos una sesion del usuario Response.Redirect("~/ArchivosUsuario.aspx"); //Vamos a la pagina de nuestros archivos } else { UserNotVerifiedError_Login.Visible = true; } } else { WrongPasswordError_Login.Visible = true; } } else { UserNotExistsError_Login.Visible = true; } }
/* Una vez el usuario ha rellenado todos los campos solicitados en el apartado del registro * correctamente, es decir, el email tiene formato de email, las contraseñas coinciden...proceemos a * guardar el usuario en la base de datos */ protected void Button_Register_Click(object sender, EventArgs e) { EmailExistsError_Register.Visible = UsernameExistsError_Register.Visible = false; //Reiniciamos los errores para que si a la proxima le salen bien no les vuelva a salir User_EN busqueda = new User_EN(); if (busqueda.BuscarUsuario(user_name_register.Text) == null) //Comprobamos que ese nombre de usuario ya este { if (busqueda.BuscarUsuario(correo_register.Text) == null) //Comprobamos que ese correo ya este { User_EN en = new User_EN(); //Si lo cumple todo, creamos un nuevo usuario en.NombreUsu = user_name_register.Text; //Con su nombre de usuario en.Correo = correo_register.Text; //Con su correo en.Contraseña = password_register1.Text; //Con su contrasenya en.InsertarUsuario(); //Llamamos a InsertarUsuario de la cap EN, que se encaragra de insertarlo EnviarCorreoConfirmacion(); //Esto enviara un correo de confirmaacion al usuario } else { EmailExistsError_Register.Visible = true; } } else { UsernameExistsError_Register.Visible = true; } }
/** * Recibe un nombre de usuario o un correo electrónico y devuelve los datos del usuario al que pertenecen. * En caso de que no exista tal usuario/correo, devuelve NULL */ public User_EN BuscarUser(string busqueda) { User_EN usuario = null; SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string select = "Select * from Users where username ='******' or email = '" + busqueda + "'"; SqlCommand com = new SqlCommand(select, nueva_conexion); SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) //Teóricamente solo debe de devolver una sola fila debido a que tanto el usuario como el email son claves alternativas (no nulos y no repetidos) { usuario = new User_EN(); usuario.ID = Convert.ToInt16(dr["ID"]); usuario.Correo = dr["email"].ToString(); usuario.Nombre = dr["nombre"].ToString(); usuario.NombreUsu = dr["username"].ToString(); usuario.Contraseña = dr["password"].ToString(); usuario.Edad = Convert.ToInt16(dr["age"]); usuario.Localidad = dr["locality"].ToString(); usuario.Visibilidad_perfil = Convert.ToBoolean(dr["profile_visibility"]); usuario.Verified = Convert.ToBoolean(dr["verified"]); } dr.Close(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } return(usuario); }
/* * Esta función sirve para controlar los datos de la tabla y poder acceder * a los datos de los archivos para ser descargados o borrados */ protected void GridViewMostrarArchivos_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { HyperLink Texto_Descarga = (HyperLink)e.Row.FindControl("Descarga"); //Creamos el link para la descargar HyperLink Texto_Borra = (HyperLink)e.Row.FindControl("Borra"); //Creamos el link para borrar el archivo User_EN en = (User_EN)Session["user_session_data"]; string rutaArchivo = "Files/" + en.ID + "/" + HttpUtility.HtmlDecode(e.Row.Cells[2].Text); /*Guardamos la ruta del archivo * utilizando HttpUtility.HtmlDecode que sirve para decodificar carácteres especiales (&, ñ, etc.)*/ string idArchivo = e.Row.Cells[1].Text; //Guardamos el id del archivo /* * Así buscamos y encontramos un icono de miniatura para el fichero en función de la extensión del archivo */ Image icono = (Image)e.Row.FindControl("icono_fichero"); string extensionArchivo = Path.GetExtension(rutaArchivo); extensionArchivo = extensionArchivo.Substring(1, extensionArchivo.Length - 1); //quitar punto (carácter 0 del string) string rutaIcono = Server.MapPath("/styles/format-icons/" + extensionArchivo + ".svg"); icono.ImageUrl = File.Exists(rutaIcono) ? "~/styles/format-icons/" + extensionArchivo + ".svg" : "~/styles/format-icons/file.svg"; Texto_Descarga.NavigateUrl = Server.MapPath(rutaArchivo); //Copiamos la ruta del archivo a la URL para descargar Texto_Borra.NavigateUrl = Server.MapPath(rutaArchivo); //Lo mismo para borrar Texto_Borra.Text = idArchivo; //Guardamos el id asociado al archivo para cuando llamemos al manejador de la funcion podamos extraerlo del objeto emisor de la señal } }
/** * Se encarga de mostrar el usuario que se quiere mostrar a través de su ID */ public ArrayList MostrarUser(User_EN u) { SqlConnection c = new SqlConnection(Constants.nombreConexion); c.Open(); SqlCommand com = new SqlCommand("Select * from Users where ID=" + u.ID, c); SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) { User_EN usuario = new User_EN(); usuario.ID = Convert.ToInt16(dr["ID"]); usuario.Correo = dr["email"].ToString(); usuario.Nombre = dr["nombre"].ToString(); usuario.NombreUsu = dr["username"].ToString(); usuario.Contraseña = dr["password"].ToString(); usuario.Edad = Convert.ToInt16(dr["age"]); usuario.Genero = Convert.ToBoolean(dr["gender"]); usuario.Localidad = dr["locality"].ToString(); usuario.Visibilidad_perfil = Convert.ToBoolean(dr["profile_visibility"]); usuario.Verified = Convert.ToBoolean(dr["verified"]); lista.Add(usuario); } dr.Close(); c.Close(); return(lista); }
/** * Se encarga de actualizar el usuario si sufre alguna modificacion en alguno de sus campos **/ public void actualizarUser(User_EN u) { string genero = "NULL"; SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string update = ""; if (u.Genero.Value == true) { genero = "1"; } else if (u.Genero.Value == false) { genero = "0"; } update = "Update Users set email = '" + u.Correo + "',nombre = '" + u.Nombre + "',username = '******',password = '******',age = " + u.Edad + ",gender = " + genero + ",locality = '" + u.Localidad + "',profile_visibility = '" + u.Visibilidad_perfil + "' where Users.ID =" + u.ID; SqlCommand com = new SqlCommand(update, nueva_conexion); com.ExecuteNonQuery(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } }
/* * Esta funcion carga los datos del usuario en los TextBox para que el usuario pueda ver sus datos personales */ protected void CargarDatos(User_EN en) { Editar_Perfil_Usuario.Text = en.NombreUsu; Editar_Perfil_Nombre.Text = en.Nombre; Editar_Perfil_Email.Text = en.Correo; Editar_Perfil_Contraseña.Text = en.Contraseña; Editar_Perfil_Localidad.Text = en.Localidad; if (en.Edad > 0) { Editar_Perfil_Edad.Text = en.Edad.ToString(); } if (en.Genero == null) { Editar_Perfil_NoMostrar.Checked = true; } else if (en.Genero.Value == true) { Editar_Perfil_Hombre.Checked = true; } else { Editar_Perfil_Mujer.Checked = true; } if (en.Visibilidad_perfil == true) { Editar_Perfil_Visibilidad_Switch.Checked = true; Editar_Perfil_Visibilidad_Label.Text = "Público"; } Editar_Perfil_ID.Text = en.ID.ToString(); }
/** * Se encarga de mostrarnos todos los datos del usuario y contraseña que le pasamos **/ public User_EN LeerUser(User_EN u) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); User_EN usuario = new User_EN(); try { nueva_conexion.Open(); string select = ""; select = "Select * from Users where username ='******' and password = '******'"; SqlCommand com = new SqlCommand(select, nueva_conexion); SqlDataReader dr = com.ExecuteReader(); if (dr.Read()) { usuario.ID = Convert.ToInt16(dr["ID"]); usuario.Correo = dr["email"].ToString(); usuario.Nombre = dr["nombre"].ToString(); usuario.NombreUsu = dr["username"].ToString(); usuario.Contraseña = dr["password"].ToString(); usuario.Edad = Convert.ToInt16(dr["age"]); usuario.Genero = Convert.ToBoolean(dr["gender"]); usuario.Localidad = dr["locality"].ToString(); usuario.Visibilidad_perfil = Convert.ToBoolean(dr["profile_visibility"]); usuario.Verified = Convert.ToBoolean(dr["verified"]); } dr.Close(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } return(usuario); }
protected void Page_Load(object sender, EventArgs e) { Response.Charset = "utf-8"; User_EN user = (User_EN)Session["user_session_data"]; if (user != null) { Link_Cerrar_Sesion.Visible = true; Barra_Secundaria.Visible = false; } }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString.Count > 0) { if (Request.QueryString.Keys[0] == "email") //Si efecticamente la url es correcta { User_EN en = new User_EN(); //Creamos un nuevo usuario string email = Request.QueryString["email"].ToString(); //Gracias a la url, podemos ver el usuario que ha recargado la pagina en.Correo = email; //Ahora que ese usuario sea el del email en.confirmacionUsuario(); //Confirmacion } } }
protected void Button_Buscra_Click(object sender, EventArgs e) { User_EN usuarioABuscar = new User_EN(); User_EN usuario = usuarioABuscar.BuscarUsuario(usuario_buscar.Text); if (usuario != null) { File_EN fi = new File_EN(); fi.Propietario = usuario.ID;//Para identificar al usuario //EL griedView, mostrara un tabla con todos los datos que nos devuelva MostrarFilesUsuarioNombreEn GridViewMostrarArchivosUsuario.DataSource = fi.MostrarFilesUsuarioNombreEn(); GridViewMostrarArchivosUsuario.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { //InitInputClasses(); User_EN en = (User_EN)Session["user_session_data"]; if (en != null) { en.LeerUsuario(); //lee todos los datos del usuario de la base de datos, ya que la pagina solo proporciona login y password MostrarDirectorio(en); //Muestra todo el directorio } else { Response.Redirect("Control_Usuarios/Login.aspx"); } }
/** * Se encarga de una vez recibido el email y darle al link, poner al que le perteneza ese usuario el verified a 1 **/ public void confirmacionUser(User_EN u) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string update = ""; update = "Update Users set verified = '1' where Users.email = '" + u.Correo + "'"; SqlCommand com = new SqlCommand(update, nueva_conexion); com.ExecuteNonQuery(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } }
protected void Page_Load(object sender, EventArgs e) { InitInputClasses(); User_EN en = (User_EN)Session["user_session_data"]; if (en != null) { if (!Page.IsPostBack) { CargarDatos(en); } } else { Response.Redirect("Login.aspx"); //Si no se ha iniciado sesion, no podras ver tu pefil y se redireccionara a la pagina de iniciar sesion } }
/** * Se encarga de borrar el usuario, si existe en la base de datos, a través de su ID **/ public void BorrarUser(User_EN u) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string delete = ""; delete = "Delete from Users where Users.ID = '" + u.ID; SqlCommand com = new SqlCommand(delete, nueva_conexion); com.ExecuteNonQuery(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } }
/** * Se encarga de introducir un usuario en la base de datos * */ public void InsertarUser(User_EN u) { SqlConnection nueva_conexion = new SqlConnection(Constants.nombreConexion); try { nueva_conexion.Open(); string genre = u.Genero.HasValue ? u.Genero.Value.ToString() : "NULL"; string insert = "insert into users(email,nombre,username,password,age,gender,locality,profile_visibility,verified) VALUES ('" + u.Correo + "','" + u.Nombre + "','" + u.NombreUsu + "','" + u.Contraseña + "'," + u.Edad + "," + genre + ",'" + u.Localidad + "'," + 0 + "," + 0 + ")"; //POR DEFECTO, VISIBILIDAD Y VERIFICACION SON FALSAS SqlCommand com = new SqlCommand(insert, nueva_conexion); com.ExecuteNonQuery(); } catch (Exception ex) { ex.Message.ToString(); } finally { nueva_conexion.Close(); } }
protected void Page_Load(object sender, EventArgs e) { // if (Request.QueryString.Count > 0) // { // if (Request.QueryString.Keys[0] == "ID") User_EN en = (User_EN)Session["user_session_data"]; if (en != null) { en.LeerUsuario(); //lee todos los datos del usuario de la base de datos, ya que la pagina solo proporciona login y password File_EN fi = new File_EN(); fi.Propietario = en.ID; //Para identificar al usuario //EL griedView, mostrara un tabla con todos los datos que nos devuelva MostrarFilesUsuarioNombreEn GridViewMostrarArchivos.DataSource = fi.MostrarFilesUsuarioNombreEn(); GridViewMostrarArchivos.DataBind(); } //} }
/* * Este método esta conectado al boton de subir archivo */ protected void Button_Upload_Click(object sender, EventArgs e) { if (IsPostBack) { String path = Server.MapPath("Files/"); //Ruta donde subir el archivo (en la carpeta "Files" de nuestro proyecto) if (FileUpload1.HasFile) { try { User_EN user = (User_EN)Session["user_session_data"]; if (user != null) { File_EN arx = new File_EN(); user.LeerUsuario(); //Leemos los datos del usuario arx.Nombre = FileUpload1.FileName; arx.Propietario = user.ID; //El propietario del archivo sera igual al id del usuario int id = arx.SubirArchivo(); string pathString = path + "/" + user.ID + "/"; //Se guardara dentro de una carpeta con el id del usuario Directory.CreateDirectory(pathString); FileUpload1.PostedFile.SaveAs(pathString + arx.Nombre); //Guardamos el archivo en la ruta correspondiente } else { Response.Write("Error. usuario no válido"); } } catch (Exception ex) { Response.Write("El archivo no se puede subir."); } } else { Response.Write("Cannot accept files of this type."); } } }
/* * Esta funcion esta conectada al boton de guardar cambios por si el usuario quiere cambiar algun * dato de su perfil */ protected void Editar_Perfil_Guardar_Click(object sender, EventArgs e) { if (Editar_Perfil_Visibilidad_Switch.Checked) { Response.Write("ON"); } else { Response.Write("OFF"); } User_EN en = new User_EN(); en.ID = Convert.ToInt16(Editar_Perfil_ID.Text); en.NombreUsu = Editar_Perfil_Usuario.Text; en.Nombre = Editar_Perfil_Nombre.Text; en.Correo = Editar_Perfil_Email.Text; en.Contraseña = Editar_Perfil_Contraseña.Text; en.Edad = Convert.ToInt16(Editar_Perfil_Edad.Text); en.Localidad = Editar_Perfil_Localidad.Text; en.Visibilidad_perfil = Editar_Perfil_Visibilidad_Switch.Checked; if (Editar_Perfil_Hombre.Checked) { en.Genero = true; } else if (Editar_Perfil_Mujer.Checked) { en.Genero = false; } else { en.Genero = null; } en.actualizarUsuario(); }
protected void MostrarDirectorio(User_EN en) { }