Skip to content
Snippets Groups Projects
Commit 17edfc9b authored by JotaJota96's avatar JotaJota96
Browse files

Correccion de validaciones de sesion iniciada

parent 862ed9de
No related branches found
No related tags found
No related merge requests found
...@@ -223,6 +223,9 @@ public class CUsuario implements IUsuario { ...@@ -223,6 +223,9 @@ public class CUsuario implements IUsuario {
@Override @Override
public void bajaUsuario() { public void bajaUsuario() {
if(usuarioActual == null){
throw new RuntimeException("No se a iniciado sesión");
}
// Bienvenido al parche // Bienvenido al parche
// La verdad no sabia bien como implementar esta funcion, asi que mejor no reinventar la rueda, uso la que ya existe aunque implique llamar al otro controlador... // La verdad no sabia bien como implementar esta funcion, asi que mejor no reinventar la rueda, uso la que ya existe aunque implique llamar al otro controlador...
IAdmin ca = Fabrica.getInstancia().getIAdmin(); IAdmin ca = Fabrica.getInstancia().getIAdmin();
...@@ -233,22 +236,17 @@ public class CUsuario implements IUsuario { ...@@ -233,22 +236,17 @@ public class CUsuario implements IUsuario {
@Override @Override
public ArrayList<Object> buscar(String busqueda, Filtrado filtro, Ordenacion orden) { public ArrayList<Object> buscar(String busqueda, Filtrado filtro, Ordenacion orden) {
if (this.usuarioActual == null) {
throw new RuntimeException("No se a iniciado sesión");
}
if (this.usuarioSeleccionado == null) {
throw new RuntimeException("El sistema no tiene un usuario seleccionado");
}
//Cambiar la linea de abajo cuando se implemente la funcion de juan //Cambiar la linea de abajo cuando se implemente la funcion de juan
// hecho // hecho
ArrayList<Object> ret = new BusquedaEnBDD().buscar(busqueda, filtro, orden); ArrayList<Object> ret = new BusquedaEnBDD().buscar(busqueda, filtro, orden);
for (int i = 0; i < ret.size(); i++) { for (int i = 0; i < ret.size(); i++) {
if (ret.get(i) instanceof DtVideo) { if (ret.get(i) instanceof DtVideo) {
DtVideo vid = (DtVideo) ret.get(i); DtVideo vid = (DtVideo) ret.get(i);
if (vid.getPrivacidad() == Privacidad.PRIVADO) { if (vid.getPrivacidad() == Privacidad.PRIVADO) {
try { try {
// Si el usuarioActual es null, o no posee un video con ese ID, se quita el elemento de la lista
this.usuarioActual.obtenerVideo(vid.getId()); this.usuarioActual.obtenerVideo(vid.getId());
} catch (Exception e) { } catch (Exception e) {
ret.remove(i); ret.remove(i);
...@@ -259,16 +257,23 @@ public class CUsuario implements IUsuario { ...@@ -259,16 +257,23 @@ public class CUsuario implements IUsuario {
DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i); DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i);
if (list.getPrivacidad() == Privacidad.PRIVADO) { if (list.getPrivacidad() == Privacidad.PRIVADO) {
try { try {
// Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista
this.usuarioActual.obtenerListaDeReproduccion(list.getId()); this.usuarioActual.obtenerListaDeReproduccion(list.getId());
} catch (Exception e) { } catch (Exception e) {
ret.remove(i); ret.remove(i);
i--; i--;
} }
} }
} else if (ret.get(i) instanceof DtCanal) { } else if (ret.get(i) instanceof DtCanal) {
DtCanal canal = (DtCanal) ret.get(i); DtCanal canal = (DtCanal) ret.get(i);
if (canal.getPrivacidad() == Privacidad.PRIVADO) { if (canal.getPrivacidad() == Privacidad.PRIVADO) { // Si el canal es privado...
if(this.usuarioActual.obtenerCanal().getId() != canal.getId()){ if (sesionIniciada()) { // Si hay una sesion iniciada
if (this.usuarioActual.obtenerCanal().getId() != canal.getId()) { // si el canal no es el propio, se remueve
ret.remove(i);
i--;
}
// si no entro al if, el canal esprivado pero es propio, entonces no se quita
} else { // Si no hay una sesion iniciada, se quita el canal
ret.remove(i); ret.remove(i);
i--; i--;
} }
...@@ -280,12 +285,6 @@ public class CUsuario implements IUsuario { ...@@ -280,12 +285,6 @@ public class CUsuario implements IUsuario {
@Override @Override
public ArrayList<Object> buscar(String categoria) { public ArrayList<Object> buscar(String categoria) {
if (this.usuarioActual == null) {
throw new RuntimeException("No se a iniciado la sesión");
}
if (this.usuarioSeleccionado == null) {
throw new RuntimeException("El sistema no tiene un usuario seleccionado");
}
//Cambiar la linea de abajo cuando se implemente la funcion de juan //Cambiar la linea de abajo cuando se implemente la funcion de juan
// hecho // hecho
ArrayList<Object> ret = new BusquedaEnBDD().buscarPorCategoria(categoria); ArrayList<Object> ret = new BusquedaEnBDD().buscarPorCategoria(categoria);
...@@ -296,6 +295,7 @@ public class CUsuario implements IUsuario { ...@@ -296,6 +295,7 @@ public class CUsuario implements IUsuario {
DtVideo vid = (DtVideo) ret.get(i); DtVideo vid = (DtVideo) ret.get(i);
if (vid.getPrivacidad() == Privacidad.PRIVADO) { if (vid.getPrivacidad() == Privacidad.PRIVADO) {
try { try {
// Si el usuarioActual es null, o no posee un video con ese ID, se quita el elemento de la lista
this.usuarioActual.obtenerVideo(vid.getId()); this.usuarioActual.obtenerVideo(vid.getId());
} catch (Exception e) { } catch (Exception e) {
ret.remove(i); ret.remove(i);
...@@ -306,6 +306,7 @@ public class CUsuario implements IUsuario { ...@@ -306,6 +306,7 @@ public class CUsuario implements IUsuario {
DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i); DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i);
if (list.getPrivacidad() == Privacidad.PRIVADO) { if (list.getPrivacidad() == Privacidad.PRIVADO) {
try { try {
// Si el usuarioActual es null, o no posee una lista con ese ID, se quita el elemento de la lista
this.usuarioActual.obtenerListaDeReproduccion(list.getId()); this.usuarioActual.obtenerListaDeReproduccion(list.getId());
} catch (Exception e) { } catch (Exception e) {
ret.remove(i); ret.remove(i);
...@@ -371,16 +372,19 @@ public class CUsuario implements IUsuario { ...@@ -371,16 +372,19 @@ public class CUsuario implements IUsuario {
} }
Map<String, Usuario> usuarios = obtenerUsuarios(); Map<String, Usuario> usuarios = obtenerUsuarios();
boolean usuarioEncontrado = false; boolean usuarioEncontrado = false;
// Intenta obtener al usuario por nickname
usuarioActual = usuarios.get(nickOEmail); usuarioActual = usuarios.get(nickOEmail);
if (usuarioActual == null){ if (usuarioActual == null){ // si NO lo encuentra por nickname
// Recorre todos los usuarios buscandolo por su correo
for (Map.Entry<String, Usuario> u : usuarios.entrySet()) { for (Map.Entry<String, Usuario> u : usuarios.entrySet()) {
// Si encuentra al usuario con ese correo
if (u.getValue().getCorreo().equals(nickOEmail)){ if (u.getValue().getCorreo().equals(nickOEmail)){
usuarioActual = u.getValue(); usuarioActual = u.getValue();
usuarioEncontrado = true; usuarioEncontrado = true;
break; break;
} }
} }
}else{ }else{ // si lo encuentra por nickname
usuarioEncontrado = true; usuarioEncontrado = true;
} }
...@@ -422,20 +426,17 @@ public class CUsuario implements IUsuario { ...@@ -422,20 +426,17 @@ public class CUsuario implements IUsuario {
@Override @Override
public ArrayList<DtComentario> listarComentariosDeVideo() { public ArrayList<DtComentario> listarComentariosDeVideo() {
if (this.usuarioActual == null) {
throw new RuntimeException("No se a iniciado la sesión");
}
if (this.usuarioSeleccionado == null) { if (this.usuarioSeleccionado == null) {
throw new RuntimeException("El sistema no tiene un usuario seleccionado"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
if (idVideoSeleccionado == 0){
throw new RuntimeException("El sistema no tiene un video seleccionado");
}
return usuarioSeleccionado.listarComentariosDeVideo(idVideoSeleccionado); return usuarioSeleccionado.listarComentariosDeVideo(idVideoSeleccionado);
} }
@Override @Override
public ArrayList<DtListaDeReproduccion> listarListasDeReproduccionDeUsuario(boolean incluirListasPorDefecto) { public ArrayList<DtListaDeReproduccion> listarListasDeReproduccionDeUsuario(boolean incluirListasPorDefecto) {
if (this.usuarioActual == null) {
throw new RuntimeException("No se a iniciado la sesión");
}
if (this.usuarioSeleccionado == null) { if (this.usuarioSeleccionado == null) {
throw new RuntimeException("El sistema no tiene un usuario seleccionado"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
...@@ -458,9 +459,10 @@ public class CUsuario implements IUsuario { ...@@ -458,9 +459,10 @@ public class CUsuario implements IUsuario {
return ret; return ret;
} }
} else { } else {
// si no se ha iniciado sesion, o si se inicio sesion pero el usuarioSeleccionado no es el usuarioActual
// Solo se incluyen las listas Publicas, osea que se quitan todas las Privadas // Solo se incluyen las listas Publicas, osea que se quitan todas las Privadas
for (int i = 0; i < ret.size(); i++) { for (int i = 0; i < ret.size(); i++) {
if (ret.get(i).getPrivacidad() == Privacidad.PUBLICO) { if (ret.get(i).getPrivacidad() == Privacidad.PRIVADO) {
ret.remove(i); ret.remove(i);
i--; i--;
} }
...@@ -496,23 +498,11 @@ public class CUsuario implements IUsuario { ...@@ -496,23 +498,11 @@ public class CUsuario implements IUsuario {
@Override @Override
public ArrayList<DtVideo> listarVideosDeListaDeReproduccion() { public ArrayList<DtVideo> listarVideosDeListaDeReproduccion() {
if (this.usuarioActual == null) {
throw new RuntimeException("No se a iniciado la sesión");
}
if (this.usuarioSeleccionado == null) { if (this.usuarioSeleccionado == null) {
throw new RuntimeException("El sistema no tiene un usuario seleccionado"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
ArrayList<DtVideo> ret = this.usuarioSeleccionado.listarVideosDeListaDeReproduccion(idListaSeleccionada); ArrayList<DtVideo> ret = this.usuarioSeleccionado.listarVideosDeListaDeReproduccion(idListaSeleccionada);
if (this.usuarioActual != this.usuarioSeleccionado) { if (this.usuarioActual == this.usuarioSeleccionado) {
// Se devuelven solo los videos Publicos
for (int i = 0; i < ret.size(); i++) {
if (ret.get(i).getPrivacidad() == Privacidad.PRIVADO) {
ret.remove(i);
i--;
}
}
return ret;
} else {
// incluye los videos privados si y solo si son del usuario actual // incluye los videos privados si y solo si son del usuario actual
// dicho de otra manera: quita los videos privados que no son del usuarioActual // dicho de otra manera: quita los videos privados que no son del usuarioActual
for (int i = 0; i < ret.size(); i++) { for (int i = 0; i < ret.size(); i++) {
...@@ -526,14 +516,20 @@ public class CUsuario implements IUsuario { ...@@ -526,14 +516,20 @@ public class CUsuario implements IUsuario {
} }
} }
return ret; return ret;
} else {
// Se devuelven solo los videos Publicos
for (int i = 0; i < ret.size(); i++) {
if (ret.get(i).getPrivacidad() == Privacidad.PRIVADO) {
ret.remove(i);
i--;
}
}
return ret;
} }
} }
@Override @Override
public ArrayList<DtVideo> listarVideosDeUsuario() { public ArrayList<DtVideo> listarVideosDeUsuario() {
if (this.usuarioActual == null){
throw new RuntimeException("No se a iniciado la sesión");
}
if (this.usuarioSeleccionado == null){ if (this.usuarioSeleccionado == null){
throw new RuntimeException("El sistema no tiene un usuario seleccionado"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
...@@ -632,10 +628,10 @@ public class CUsuario implements IUsuario { ...@@ -632,10 +628,10 @@ public class CUsuario implements IUsuario {
@Override @Override
public DtCanal obtenerCanalDeUsuario() { public DtCanal obtenerCanalDeUsuario() {
if (usuarioActual == null) { if (this.usuarioSeleccionado == null){
throw new RuntimeException("No se a iniciado la sesión"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
return usuarioActual.obtenerCanal(); return usuarioSeleccionado.obtenerCanal();
} }
@Override @Override
...@@ -670,9 +666,15 @@ public class CUsuario implements IUsuario { ...@@ -670,9 +666,15 @@ public class CUsuario implements IUsuario {
@Override @Override
public DtValoracion obtenerValoracionDada() { public DtValoracion obtenerValoracionDada() {
if (usuarioSeleccionado == null) { if (usuarioActual == null) {
throw new RuntimeException("No se a iniciado la sesión"); throw new RuntimeException("No se a iniciado la sesión");
} }
if(usuarioSeleccionado == null){
throw new RuntimeException("El sistema no tiene un usuario seleccionado");
}
if (idVideoSeleccionado == 0){
throw new RuntimeException("El sistema no tiene un video seleccionado");
}
return usuarioSeleccionado.obtenerValoracion(idVideoSeleccionado, usuarioActual.getNickname()); return usuarioSeleccionado.obtenerValoracion(idVideoSeleccionado, usuarioActual.getNickname());
} }
...@@ -681,6 +683,9 @@ public class CUsuario implements IUsuario { ...@@ -681,6 +683,9 @@ public class CUsuario implements IUsuario {
if(usuarioSeleccionado == null){ if(usuarioSeleccionado == null){
throw new RuntimeException("El sistema no tiene un usuario seleccionado"); throw new RuntimeException("El sistema no tiene un usuario seleccionado");
} }
if (idVideoSeleccionado == 0){
throw new RuntimeException("El sistema no tiene un video seleccionado");
}
return usuarioSeleccionado.listarValoracionesDeVideo(idVideoSeleccionado); return usuarioSeleccionado.listarValoracionesDeVideo(idVideoSeleccionado);
} }
...@@ -689,6 +694,9 @@ public class CUsuario implements IUsuario { ...@@ -689,6 +694,9 @@ public class CUsuario implements IUsuario {
if(usuarioActual == null){ if(usuarioActual == null){
throw new RuntimeException("No se a iniciado la sesión"); throw new RuntimeException("No se a iniciado la sesión");
} }
if (idListaSeleccionada == 0){
throw new RuntimeException("El sistema no tiene una lista de reproduccion seleccionada");
}
usuarioActual.quitarVideoDeListaDeReproduccion(idListaSeleccionada,idVideo); usuarioActual.quitarVideoDeListaDeReproduccion(idListaSeleccionada,idVideo);
} }
......
...@@ -65,7 +65,8 @@ public interface IUsuario { ...@@ -65,7 +65,8 @@ public interface IUsuario {
* Busca contenido por coincidencia de texto en nombre o descripcion de los * Busca contenido por coincidencia de texto en nombre o descripcion de los
* contenidos del sistema En el resultado se incluirán (si corresponde segun * contenidos del sistema En el resultado se incluirán (si corresponde segun
* el filtrado) los videos privados del usuarioActual * el filtrado) los videos privados del usuarioActual
* * Si no se ha iniciado sesión, se muestran sólo los contenidos públicos
*
* @param busqueda Texto a buscar (si es vacío incluye todo el contenido) * @param busqueda Texto a buscar (si es vacío incluye todo el contenido)
* @param filtro Tipo de contenido en el cual se realizará la búsqueda * @param filtro Tipo de contenido en el cual se realizará la búsqueda
* @param orden Manera de ordenar el resultado de la búsqueda * @param orden Manera de ordenar el resultado de la búsqueda
...@@ -79,7 +80,8 @@ public interface IUsuario { ...@@ -79,7 +80,8 @@ public interface IUsuario {
* Busca contenido que pertenezcan a la categoria indicada El Resultado * Busca contenido que pertenezcan a la categoria indicada El Resultado
* contendrá todos los contenidos publicos, y los contenidos privados del * contendrá todos los contenidos publicos, y los contenidos privados del
* usuarioActual * usuarioActual
* * Si no se ha iniciado sesión, se muestran sólo los contenidos públicos
*
* @param categoria Nombre de la categoria a buscar * @param categoria Nombre de la categoria a buscar
* @return Resultado de la busqueda. Puede contener DtVideo y * @return Resultado de la busqueda. Puede contener DtVideo y
* DtListaDeReproduccion. (para usar los elementos devueltos hay que * DtListaDeReproduccion. (para usar los elementos devueltos hay que
...@@ -189,7 +191,8 @@ public interface IUsuario { ...@@ -189,7 +191,8 @@ public interface IUsuario {
* Lista los videos contenidos en la lista idListaSeleccionada perteneciente * Lista los videos contenidos en la lista idListaSeleccionada perteneciente
* al usuarioSeleccionado Si la lista contiene video privado que no * al usuarioSeleccionado Si la lista contiene video privado que no
* pertenezca a usuarioActual, estos no se incluiran en el resultado * pertenezca a usuarioActual, estos no se incluiran en el resultado
* * Si no se ha iniciado sesion solo lista los videos publicos
*
* @return Conjunto de videos * @return Conjunto de videos
*/ */
public ArrayList<DtVideo> listarVideosDeListaDeReproduccion(); public ArrayList<DtVideo> listarVideosDeListaDeReproduccion();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment