← Volver a Back.API

PermisosController

Controlador para la gestión de permisos y roles de usuario del sistema

📊 Resumen del Controlador

2
Servicios Inyectados
6
Endpoints Totales
CRUD
Operaciones Completas
Master
Datos Maestros

El PermisosController es el controlador encargado de gestionar los permisos y roles de usuario del sistema RestMaster. Proporciona una API RESTful completa para administrar los permisos de acceso a diferentes módulos y funcionalidades del sistema, implementando un sistema de control de acceso basado en módulos y entradas.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de permisos del sistema (5 endpoints)
  • Control de acceso por módulo y entrada específica
  • Niveles de permiso configurables por funcionalidad
  • Control de firmas para operaciones críticas
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IPermisoService - Servicio principal de gestión de permisos
  • ILogger<PermisosController> - Logging de errores y eventos

⚠️ Parámetros de Conexión

Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:

  • initialCatalog (string): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos

📋 Categorías de Endpoints

🔐 Gestión de Permisos

Gestión CRUD completa de permisos del sistema
CRUD
Security

Endpoints: 5 métodos

  • GET /GetPermisos
  • GET /GetPermiso/{modulo}/{entrada}
  • POST /AddPermiso
  • PUT /UpdatePermiso/{modulo}/{entrada}
  • DELETE /DeletePermiso/{modulo}/{entrada}
Ver detalles →

ℹ️ Información del Sistema

Información sobre métodos HTTP permitidos
System
Info

Endpoints: 1 método

  • OPTIONS /
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Permisos

Todos los endpoints del controlador están bajo la ruta /Master/Permisos, lo que indica que maneja datos maestros del sistema relacionados con permisos y seguridad.

Patrones de URL por Categoría:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Permiso creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Permiso no encontrado

Usado en: GET, PUT, DELETE cuando el permiso no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 Características Técnicas

🎯 Características del Controlador

  • Async/Await: Todos los métodos son asíncronos para mejor rendimiento
  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • Error Handling: Manejo centralizado de excepciones con logging
  • Dependency Injection: Inyección de servicios + logger
  • RESTful Design: Diseño REST completo con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Logging: Logging estructurado de errores y eventos

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores internos se loguean pero no exponen información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Control de acceso basado en módulos y entradas específicas

📝 Patrones de Diseño Utilizados

  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Async/Await Pattern: Programación asíncrona
  • Error Handling Pattern: Manejo centralizado de errores
  • RESTful API Design: Diseño de API REST estándar

📈 Estadísticas Detalladas

185
Líneas de Código
1
Región de Código
6
Métodos Públicos
4
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos - Permiso

Propiedades del modelo Permiso:
  • Modulo (string): Identificador del módulo del sistema
  • Entrada (string): Identificador de la entrada específica del módulo
  • Nivel (double): Nivel de permiso requerido para acceder
  • Control (string): Control adicional de acceso (1 carácter)
  • Firma (string): Requisito de firma para la operación (1 carácter)

🔑 Clave Primaria Compuesta

El modelo Permiso utiliza una clave primaria compuesta por Modulo y Entrada, lo que permite definir permisos específicos para cada funcionalidad del sistema.