Skip to content

feat: Implement Administrative User Management and Module-Level Permission Assignment #44

@josemora090525

Description

@josemora090525

👥 Feature: Implementación del Módulo de Gestión Administrativa de Usuarios

Este Issue Principal coordina la implementación del MÓDULO: Gestión de Usuarios, cuyo objetivo es proporcionar una interfaz administrativa robusta para el CRUD (Crear, Consultar, Modificar, Eliminar) de usuarios y la asignación directa de permisos a nivel de módulo.

🎯 Objetivo

Implementar las capas de persistencia, lógica de negocio y control para:

  1. Crear nuevos usuarios (empleados) asignándoles acceso granular a la lista de 7 módulos del sistema.
  2. Administrar usuarios existentes (consultar, filtrar, editar y eliminar).
  3. Asegurar que la lógica se base en la asignación directa Usuario-Módulo, sin roles rígidos.

🔗 Módulos de Acceso

La funcionalidad de asignación de permisos debe listar y permitir seleccionar los siguientes módulos:

  1. Registrar Productos
  2. Gestionar Inventario
  3. Gestionar Usuarios
  4. Visualizar Registros
  5. Ventas
  6. Administrar Proveedores
  7. Agregar Clientes

📋 Tareas Pendientes (Sub-Issues y dependencias)

A continuación, se detalla el trabajo a realizar, manteniendo un seguimiento a través de los task lists.

1. Repositorios (Persistencia de Usuario y Módulos)

  • Issue 1: Crear UsuarioRepository y UsuarioModuloRepository

    • Implementar los métodos CRUD para la entidad Usuario.
    • Implementar métodos de consulta y manipulación para la tabla de relación Usuario_Modulo (asignación de permisos).
    • Implementar métodos para buscar y filtrar usuarios (ej., por nombre de usuario).
    • Depende de: Modelos Usuario, Módulo.
  • Issue 2: Crear ModuloRepository

    • Implementar un método para obtener la lista completa de los 7 módulos del sistema (Inventario, Ventas, etc.).
    • Depende de: Modelo Módulo.

2. Servicios (Lógica de Seguridad y Asignación)

  • Issue 3: Crear UsuarioService (Gestión Administrativa)
    • Desarrollar la lógica de Creación de Usuario (incluyendo la encriptación de la contraseña y la validación de la confirmación).
    • (Clave) Implementar la lógica para asignar y actualizar los permisos del usuario, manipulando la relación Usuario_Modulo (borrar asignaciones viejas e insertar las nuevas).
    • Implementar la lógica para la eliminación y edición de usuarios existentes.
    • Depende de: UsuarioRepository, ModuloRepository.

3. Controladores (Vistas Administrativas)

  • Issue 4: Crear UsuarioController (Vista de Creación)

    • Implementar el controlador para gestionar la vista de Creación de Nuevo Usuario.
    • Conectar la interfaz para listar los 7 módulos disponibles para la selección de permisos.
    • Implementar el método crearUsuario() que recopila los datos y la selección de módulos y los envía al UsuarioService.
    • Asegurar la validación de que las contraseñas coincidan y la selección de módulos no esté vacía.
    • Depende de: UsuarioService.
  • Issue 5: Extender UsuarioController (Vista de Administración)

    • Implementar la sección de la vista para consultar todos los usuarios del sistema.
    • Implementar la funcionalidad de Filtrar la lista de usuarios.
    • Implementar la conexión de los botones para Deshacer, Editar (abrir el formulario de edición, incluyendo la precarga de permisos) y Eliminar usuarios.
    • Depende de: UsuarioService.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthigh-priorityMust be addressed urgently or blocks critical functionality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions