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 {
@Override
public void bajaUsuario() {
if(usuarioActual == null){
throw new RuntimeException("No se a iniciado sesión");
}
// 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...
IAdmin ca = Fabrica.getInstancia().getIAdmin();
......@@ -233,22 +236,17 @@ public class CUsuario implements IUsuario {
@Override
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
// hecho
ArrayList<Object> ret = new BusquedaEnBDD().buscar(busqueda, filtro, orden);
for (int i = 0; i < ret.size(); i++) {
if (ret.get(i) instanceof DtVideo) {
DtVideo vid = (DtVideo) ret.get(i);
if (vid.getPrivacidad() == Privacidad.PRIVADO) {
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());
} catch (Exception e) {
ret.remove(i);
......@@ -259,16 +257,23 @@ public class CUsuario implements IUsuario {
DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i);
if (list.getPrivacidad() == Privacidad.PRIVADO) {
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());
} catch (Exception e) {
ret.remove(i);
i--;
}
}
}
} else if (ret.get(i) instanceof DtCanal) {
DtCanal canal = (DtCanal) ret.get(i);
if (canal.getPrivacidad() == Privacidad.PRIVADO) {
if(this.usuarioActual.obtenerCanal().getId() != canal.getId()){
if (canal.getPrivacidad() == Privacidad.PRIVADO) { // Si el canal es privado...
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);
i--;
}
......@@ -280,12 +285,6 @@ public class CUsuario implements IUsuario {
@Override
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
// hecho
ArrayList<Object> ret = new BusquedaEnBDD().buscarPorCategoria(categoria);
......@@ -296,6 +295,7 @@ public class CUsuario implements IUsuario {
DtVideo vid = (DtVideo) ret.get(i);
if (vid.getPrivacidad() == Privacidad.PRIVADO) {
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());
} catch (Exception e) {
ret.remove(i);
......@@ -306,6 +306,7 @@ public class CUsuario implements IUsuario {
DtListaDeReproduccion list = (DtListaDeReproduccion) ret.get(i);
if (list.getPrivacidad() == Privacidad.PRIVADO) {
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());
} catch (Exception e) {
ret.remove(i);
......@@ -371,16 +372,19 @@ public class CUsuario implements IUsuario {
}
Map<String, Usuario> usuarios = obtenerUsuarios();
boolean usuarioEncontrado = false;
// Intenta obtener al usuario por nickname
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()) {
// Si encuentra al usuario con ese correo
if (u.getValue().getCorreo().equals(nickOEmail)){
usuarioActual = u.getValue();
usuarioEncontrado = true;
break;
}
}
}else{
}else{ // si lo encuentra por nickname
usuarioEncontrado = true;
}
......@@ -422,20 +426,17 @@ public class CUsuario implements IUsuario {
@Override
public ArrayList<DtComentario> listarComentariosDeVideo() {
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");
}
if (idVideoSeleccionado == 0){
throw new RuntimeException("El sistema no tiene un video seleccionado");
}
return usuarioSeleccionado.listarComentariosDeVideo(idVideoSeleccionado);
}
@Override
public ArrayList<DtListaDeReproduccion> listarListasDeReproduccionDeUsuario(boolean incluirListasPorDefecto) {
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");
}
......@@ -458,9 +459,10 @@ public class CUsuario implements IUsuario {
return ret;
}
} 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
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);
i--;
}
......@@ -496,23 +498,11 @@ public class CUsuario implements IUsuario {
@Override
public ArrayList<DtVideo> listarVideosDeListaDeReproduccion() {
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");
}
ArrayList<DtVideo> ret = this.usuarioSeleccionado.listarVideosDeListaDeReproduccion(idListaSeleccionada);
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 {
if (this.usuarioActual == this.usuarioSeleccionado) {
// 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
for (int i = 0; i < ret.size(); i++) {
......@@ -526,14 +516,20 @@ public class CUsuario implements IUsuario {
}
}
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
public ArrayList<DtVideo> listarVideosDeUsuario() {
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");
}
......@@ -632,10 +628,10 @@ public class CUsuario implements IUsuario {
@Override
public DtCanal obtenerCanalDeUsuario() {
if (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");
}
return usuarioActual.obtenerCanal();
return usuarioSeleccionado.obtenerCanal();
}
@Override
......@@ -670,9 +666,15 @@ public class CUsuario implements IUsuario {
@Override
public DtValoracion obtenerValoracionDada() {
if (usuarioSeleccionado == null) {
if (usuarioActual == null) {
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());
}
......@@ -681,6 +683,9 @@ public class CUsuario implements IUsuario {
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.listarValoracionesDeVideo(idVideoSeleccionado);
}
......@@ -689,6 +694,9 @@ public class CUsuario implements IUsuario {
if(usuarioActual == null){
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);
}
......
......@@ -65,7 +65,8 @@ public interface IUsuario {
* Busca contenido por coincidencia de texto en nombre o descripcion de los
* contenidos del sistema En el resultado se incluirán (si corresponde segun
* 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 filtro Tipo de contenido en el cual se realizará la búsqueda
* @param orden Manera de ordenar el resultado de la búsqueda
......@@ -79,7 +80,8 @@ public interface IUsuario {
* Busca contenido que pertenezcan a la categoria indicada El Resultado
* contendrá todos los contenidos publicos, y los contenidos privados del
* usuarioActual
*
* Si no se ha iniciado sesión, se muestran sólo los contenidos públicos
*
* @param categoria Nombre de la categoria a buscar
* @return Resultado de la busqueda. Puede contener DtVideo y
* DtListaDeReproduccion. (para usar los elementos devueltos hay que
......@@ -189,7 +191,8 @@ public interface IUsuario {
* Lista los videos contenidos en la lista idListaSeleccionada perteneciente
* al usuarioSeleccionado Si la lista contiene video privado que no
* 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
*/
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