diff --git a/UyTube_logica/src/Logica/Controladores/CUsuario.java b/UyTube_logica/src/Logica/Controladores/CUsuario.java index d1afc0a86edb837fcb6c10747f7543e544c7d83c..86e14e6bfb145c060afda45b93b8d7fd2cfec74d 100644 --- a/UyTube_logica/src/Logica/Controladores/CUsuario.java +++ b/UyTube_logica/src/Logica/Controladores/CUsuario.java @@ -682,7 +682,14 @@ public class CUsuario implements IUsuario { } throw new RuntimeException("El iID de video no crresponde a ningun usuario"); } - + @Override + public DtUsuario obtenerUsuarioActual(){ + if (usuarioActual == null){ + throw new RuntimeException("No se a iniciado la sesión"); + } + return usuarioActual.getDT(); + } + @Override public DtValoracion obtenerValoracionDada() { if (usuarioActual == null) { diff --git a/UyTube_logica/src/Logica/Interfaces/IUsuario.java b/UyTube_logica/src/Logica/Interfaces/IUsuario.java index e94a4890cd0f6967ead47bf3d409c278ad116e5e..2cb89b3562efc84c415d80dd39d66614f4537973 100644 --- a/UyTube_logica/src/Logica/Interfaces/IUsuario.java +++ b/UyTube_logica/src/Logica/Interfaces/IUsuario.java @@ -261,6 +261,12 @@ public interface IUsuario { */ public DtUsuario obtenerPropietarioDeListaDeReproduccion(int idLista); + /** + * Devuelve los datos del usuario que inició sesión + * @return Datos del usuario actual + */ + public DtUsuario obtenerUsuarioActual(); + /** * Devuelve la valoracion dada por usuarioActual al video * idVideoSeleccionado perteneciente al usuarioSeleccionado diff --git a/UyTube_web/libreria/UyTube_logica.jar b/UyTube_web/libreria/UyTube_logica.jar index 48cf4360d6d98d1583069feabf3ba313adec3fcc..27652ad8f937c9e5ecefab8708eeb1aa8750aca7 100644 Binary files a/UyTube_web/libreria/UyTube_logica.jar and b/UyTube_web/libreria/UyTube_logica.jar differ diff --git a/UyTube_web/src/java/com/uytube/CerrarSesion.java b/UyTube_web/src/java/com/uytube/CerrarSesion.java index 49de7bfc44509f64b3a793f32364bb47d927babd..3e2d6d55c0fa86cafe54d4ee6cc884daa7f300a0 100644 --- a/UyTube_web/src/java/com/uytube/CerrarSesion.java +++ b/UyTube_web/src/java/com/uytube/CerrarSesion.java @@ -5,8 +5,10 @@ */ package com.uytube; +import Logica.Enumerados.Filtrado; +import Logica.Fabrica; +import Logica.Interfaces.IUsuario; import java.io.IOException; -import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -18,34 +20,7 @@ import javax.servlet.http.HttpSession; * @author administrador */ public class CerrarSesion extends HttpServlet { - - /** - * Processes requests for both HTTP <code>GET</code> and <code>POST</code> - * methods. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - protected void processRequest(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - response.setContentType("text/html;charset=UTF-8"); - try (PrintWriter out = response.getWriter()) { - /* TODO output your page here. You may use following sample code. */ - out.println("<!DOCTYPE html>"); - out.println("<html>"); - out.println("<head>"); - out.println("<title>Servlet CerrarSesion</title>"); - out.println("</head>"); - out.println("<body>"); - out.println("<h1>Servlet CerrarSesion at " + request.getContextPath() + "</h1>"); - out.println("</body>"); - out.println("</html>"); - } - } - - // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> + /** * Handles the HTTP <code>GET</code> method. * @@ -57,26 +32,20 @@ public class CerrarSesion extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + IUsuario sys = Fabrica.getInstancia().getIUsuario(); + + // cierra la sesion HTTP (si es que hay una iniciada) HttpSession session = request.getSession(false); - if(session != null) + if(session != null){ session.invalidate(); + } + // Cierra la sesion en el sistema (si es que hay una iniciada) + if (sys.sesionIniciada()){ + sys.cerrarSesion(); + } request.getRequestDispatcher("/index.jsp").forward(request,response); } - - /** - * Handles the HTTP <code>POST</code> method. - * - * @param request servlet request - * @param response servlet response - * @throws ServletException if a servlet-specific error occurs - * @throws IOException if an I/O error occurs - */ - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - processRequest(request, response); - } - + /** * Returns a short description of the servlet. * diff --git a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java index 63e44f5e12ed5637df0e242f846a3292c37625eb..f4235bc6f4511ce2db69cec087e753deda7389a6 100644 --- a/UyTube_web/src/java/com/uytube/ConsultaUsuario.java +++ b/UyTube_web/src/java/com/uytube/ConsultaUsuario.java @@ -51,15 +51,10 @@ public class ConsultaUsuario extends HttpServlet { ArrayList<DtListaDeReproduccion> listasRep = sys.listarListasDeReproduccionDeUsuario(false); boolean sesionIniciada = sys.sesionIniciada(); - // <parche> aqui viene el parche... boolean usuarioPropietario = false; - ArrayList<DtListaDeReproduccion> lst = sys.listarListasDeReproduccionDeUsuario(true); - for (DtListaDeReproduccion l : lst){ - if (l.getTipo() == TipoListaDeReproduccion.POR_DEFECTO || l.getPrivacidad() == Privacidad.PRIVADO){ - usuarioPropietario = true; - } + if (sesionIniciada){ + usuarioPropietario = sys.obtenerUsuarioActual().getNickname().equals(nick); } - // fin del parche </parche> request.setAttribute("usuario", usuario); request.setAttribute("canal", canal); diff --git a/UyTube_web/src/java/com/uytube/IniciarSesion.java b/UyTube_web/src/java/com/uytube/IniciarSesion.java index 7930e4dff974af1239096b5cb770a34092deae6c..47949f79277b7d1b945de785f3815f5301158fdc 100644 --- a/UyTube_web/src/java/com/uytube/IniciarSesion.java +++ b/UyTube_web/src/java/com/uytube/IniciarSesion.java @@ -5,6 +5,8 @@ */ package com.uytube; +import Logica.Fabrica; +import Logica.Interfaces.IUsuario; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; @@ -77,23 +79,19 @@ public class IniciarSesion extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String user = "usuario"; - String password = "123"; + IUsuario sys = Fabrica.getInstancia().getIUsuario(); String paramUser = request.getParameter("user"); String paramPassword = request.getParameter("password"); RequestDispatcher rd; //objeto para despachar - System.out.println("user: "+paramUser); - System.out.println("password: "+paramPassword); - HttpSession sesion = request.getSession(); //sesion.invalidate(); - //deberÃamos buscar el usuario en la base de datos, pero dado que se escapa de este tema, ponemos un ejemplo en el mismo código - if(user.equals(paramUser) && password.equals(paramPassword) && sesion.getAttribute(paramUser) == null){ + if(sys.iniciarSesionUsuario(paramUser, paramPassword) && sesion.getAttribute(paramUser) == null){ + String nick = sys.obtenerUsuarioActual().getNickname(); //si coincide usuario y password y además no hay sesión iniciada - sesion.setAttribute("usuario", paramUser); + sesion.setAttribute("usuario", nick); //redirijo a página con información de login exitoso rd = request.getRequestDispatcher("/Presentacion.jsp"); }else{ diff --git a/UyTube_web/web/ConsultaUsuario.jsp b/UyTube_web/web/ConsultaUsuario.jsp index 4427188f2f9118ac1a49f5c62c722bed635d04c1..53061ee1019e598357ea7ace81914c54e13673f8 100644 --- a/UyTube_web/web/ConsultaUsuario.jsp +++ b/UyTube_web/web/ConsultaUsuario.jsp @@ -87,20 +87,20 @@ <div class="p-4 flex-fill bd-highlight"> <div class="d-flex justify-content-center"> <% - String rutaImagenPerfil; String textoAlternativo; + String rutaDeImagenDePerfil; if (usuario.getImagen() == null || usuario.getImagen().equals("")) { - rutaImagenPerfil = "imagenes/ukp.png"; + rutaDeImagenDePerfil = "imagenes/ukp.png"; textoAlternativo = "Imagen de perfil por defecto"; } else { - rutaImagenPerfil = usuario.getImagen(); + rutaDeImagenDePerfil = usuario.getImagen(); textoAlternativo = "Imagen de perfil de " + usuario.getNickname(); //char contrabarra = 92; //char barra = 47; //rutaImagenPerfil = rutaImagenPerfil = rutaImagenPerfil.replace(contrabarra, barra); } %> - <img src="<%=rutaImagenPerfil%>" class="rounded-circle" alt="<%=textoAlternativo%>" width="180" height="180"> + <img src="<%=rutaDeImagenDePerfil%>" class="rounded-circle" alt="<%=textoAlternativo%>" width="180" height="180"> </div> </div> <div class="p-1 flex-fill bd-highlight "> diff --git a/UyTube_web/web/imagenes/mestruli.jpg b/UyTube_web/web/imagenes/mestruli.jpg deleted file mode 100644 index aa4122dc6762e96362a7efbf5e7905d2fd2a3153..0000000000000000000000000000000000000000 Binary files a/UyTube_web/web/imagenes/mestruli.jpg and /dev/null differ diff --git a/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG b/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG new file mode 100644 index 0000000000000000000000000000000000000000..5d59ae0883fb4017307c18cc31a9a504bc3425b6 Binary files /dev/null and b/UyTube_web/web/imagenes/perfiles/JotaJota96.JPG differ diff --git a/UyTube_web/web/imagenes/perfiles/LuC31G.jpg b/UyTube_web/web/imagenes/perfiles/LuC31G.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f22efc5908db0af0594d76d75ae3f89ebdff93a6 Binary files /dev/null and b/UyTube_web/web/imagenes/perfiles/LuC31G.jpg differ diff --git a/UyTube_web/web/imagenes/perfiles/MCBolso.jpg b/UyTube_web/web/imagenes/perfiles/MCBolso.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35469b84ed023de4e5a7581095434bcbf69719d1 Binary files /dev/null and b/UyTube_web/web/imagenes/perfiles/MCBolso.jpg differ diff --git a/UyTube_web/web/imagenes/perfiles/camilillo15.jpg b/UyTube_web/web/imagenes/perfiles/camilillo15.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc36ba95eecc24c956cbaf03f53dccda2f9317bb Binary files /dev/null and b/UyTube_web/web/imagenes/perfiles/camilillo15.jpg differ diff --git a/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg b/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d54ec04f4eee56374821fcfb9c9928a761cbc10b Binary files /dev/null and b/UyTube_web/web/imagenes/perfiles/jarrieta31.jpg differ diff --git a/datos_de_prueba.sql b/datos_de_prueba.sql index 2022e8850b6d5057203393f3a71c59478688a529..b3ea4ab609069511a23f5c1ded95f532c2775339 100644 --- a/datos_de_prueba.sql +++ b/datos_de_prueba.sql @@ -31,11 +31,11 @@ INSERT INTO public.canal (descripcion,eliminado,nombre,privacidad) VALUES -- Usuarios INSERT INTO public.usuario (id,apellido,contrasenia,correo,eliminado,fecha_eliminado,fecha_nacimiento,imagen,nombre,seguidores,id_canal) VALUES -('JotaJota96','Alvarez','12345678','jjap96@gmail.com',false,NULL,'1996-10-09','Imagenes\perfiles\JotaJota96.jpg','Juan',3,1) -,('LuC31G','Garrido','12345678','LuC31@gmail.com',false,NULL,'1998-12-31','Imagenes\perfiles\LuC31G.jpg','Lucas',2,2) -,('MCBolso','Castro','12345678','mcbolso96@gmail.com',false,NULL,'1999-08-04','Imagenes\perfiles\MCBolso.jpg','Mariano',0,3) -,('camilillo15','Camilo','12345678','facu_camilo2@hotmail.com',false,NULL,'1999-07-13','Imagenes\perfiles\camilillo15.jpg','Facundo',1,4) -,('jarrieta31','Arrieta','jarrieta31','julioarrieta23@gmail.com',false,NULL,'1976-03-02','Imagenes\perfiles\jarrieta31.jpg','Julio',4,5) +('JotaJota96','Alvarez','12345678','jjap96@gmail.com',false,NULL,'1996-10-09','imagenes\perfiles\JotaJota96.jpg','Juan',3,1) +,('LuC31G','Garrido','12345678','LuC31@gmail.com',false,NULL,'1998-12-31','imagenes\perfiles\LuC31G.jpg','Lucas',2,2) +,('MCBolso','Castro','12345678','mcbolso96@gmail.com',false,NULL,'1999-08-04','imagenes\perfiles\MCBolso.jpg','Mariano',0,3) +,('camilillo15','Camilo','12345678','facu_camilo2@hotmail.com',false,NULL,'1999-07-13','imagenes\perfiles\camilillo15.jpg','Facundo',1,4) +,('jarrieta31','Arrieta','jarrieta31','julioarrieta23@gmail.com',false,NULL,'1976-03-02','imagenes\perfiles\jarrieta31.jpg','Julio',4,5) ,('terraplanista1','Ibañez','terraplanista1','olivertierraplana@gmail.com',false,NULL,'2019-10-03','','Oliver',0,6) ,('apmi','Pastores','apmi','apmi@hotmail.com',false,NULL,'2019-10-03','','Alerta',1,7) ;