Class GestorUsuarios

java.lang.Object
Controlador.GestorUsuarios

public class GestorUsuarios extends Object
Controlador responsable de la gestión de usuarios.

Coordina el registro, inicio y cierre de sesión, validaciones y consultas sobre usuarios. Actúa como intermediario entre la capa de vista y la capa de persistencia.

Version:
1.1
Author:
Adrián
  • Field Details

    • persistencia

      private GestorPersistencia persistencia
      Implementación de persistencia inyectada por constructor.
    • listaUsuarios

      private ArrayList<Usuario> listaUsuarios
      Lista de usuarios cargada una sola vez al iniciar el gestor.
    • usuarioActual

      private Usuario usuarioActual
      Usuario que ha iniciado sesión actualmente. Null si no hay sesión activa.
  • Constructor Details

    • GestorUsuarios

      public GestorUsuarios(GestorPersistencia persistencia)
      Crea un nuevo GestorUsuarios con la implementación de persistencia indicada. Carga la lista de usuarios desde disco una única vez.
      Parameters:
      persistencia - implementación de GestorPersistencia a utilizar
  • Method Details

    • iniciarSesion

      public Usuario iniciarSesion(String username, String contrasena)
      Intenta iniciar sesión con las credenciales proporcionadas.

      Busca el username en listaUsuarios y verifica la contraseña. Si las credenciales son correctas, guarda el usuario en usuarioActual.

      Parameters:
      username - nombre de usuario
      contrasena - contraseña en texto plano
      Returns:
      el Usuario autenticado, o null si las credenciales son incorrectas
    • registrarUsuario

      public String registrarUsuario(String username, String contrasena)
      Registra un nuevo jugador si las credenciales superan las validaciones y el username no está ya en uso.
      Parameters:
      username - nombre de usuario deseado
      contrasena - contraseña deseada
      Returns:
      null si el registro fue exitoso, o un mensaje de error si falló
    • validarUsername

      private String validarUsername(String username)
      Valida el formato del nombre de usuario.

      Reglas: no vacío, mínimo 3 caracteres, solo letras, números y guiones.

      Parameters:
      username - nombre de usuario a validar
      Returns:
      null si es válido, o mensaje de error si no lo es
    • validarPassword

      private String validarPassword(String password)
      Valida el formato de la contraseña.

      Reglas: no vacía, mínimo 8 caracteres, sin punto y coma. El punto y coma está prohibido porque es el separador usado en los ficheros de persistencia; permitirlo rompería la deserialización.

      Parameters:
      password - contraseña a validar
      Returns:
      null si es válida, o mensaje de error si no lo es
    • cerrarSesion

      public void cerrarSesion()
      Cierra la sesión del usuario actual. Tras llamar a este método, getUsuarioActual() devolverá null.
    • getUsuarioActual

      public Usuario getUsuarioActual()
      Devuelve el usuario que tiene la sesión activa.
      Returns:
      el Usuario autenticado, o null si no hay sesión
    • buscarUsuario

      public Usuario buscarUsuario(String username)
      Busca un usuario por su nombre de usuario en listaUsuarios.
      Parameters:
      username - nombre de usuario a buscar
      Returns:
      el Usuario encontrado, o null si no existe
    • esAdministrador

      public boolean esAdministrador()
      Comprueba si el usuario con sesión activa es administrador.
      Returns:
      true si usuarioActual es instancia de Administrador
    • getListaUsuarios

      public ArrayList<Usuario> getListaUsuarios()
      Devuelve la lista completa de usuarios registrados en el sistema. Usado principalmente por VentanaAdmin para mostrar el panel de gestión.
      Returns:
      ArrayList con todos los Usuario registrados
    • borrarUsuario

      public String borrarUsuario(String username)
      Elimina un usuario del sistema por su username. Restricciones: no se puede borrar al propio usuario con sesión activa, ni a otro administrador.
      Parameters:
      username - nombre de usuario a eliminar
      Returns:
      null si se eliminó correctamente, o un mensaje de error