← Volver a PermisosController

🔐 Gestión de Permisos

Endpoints para la gestión CRUD completa de permisos del sistema

Descripción General

Los endpoints de Gestión de Permisos proporcionan las operaciones fundamentales para administrar los permisos de acceso al sistema RestMaster. Estos endpoints manejan la configuración de permisos por módulo y entrada específica, permitiendo un control granular del acceso a las diferentes funcionalidades del sistema.

🎯 Características de la Gestión de Permisos

  • Control por módulo: Permisos organizados por módulos del sistema
  • Entradas específicas: Control granular por funcionalidad específica
  • Niveles de acceso: Diferentes niveles de permiso configurables
  • Controles adicionales: Configuración de controles de acceso
  • Requisitos de firma: Control de operaciones que requieren firma

Endpoints Disponibles

GET /Master/Permisos/GetPermisos

Obtiene todos los permisos configurados en el sistema. Este endpoint devuelve una lista completa de todos los permisos registrados en la base de datos maestra.
Parámetros de consulta:
  • initialCatalog (string, requerido): 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
200 OK
Lista de permisos devuelta exitosamente
{ "modulo": "ARTICULOS", "entrada": "CONSULTA", "nivel": 1.0, "control": "S", "firma": "N" }
500 Internal Server Error
Error interno del servidor

GET /Master/Permisos/GetPermiso/{modulo}/{entrada}

Obtiene un permiso específico por módulo y entrada. Este endpoint permite recuperar la configuración de un permiso en particular.
Parámetros de ruta:
  • modulo (string, requerido): Nombre del módulo del sistema
  • entrada (string, requerido): Nombre de la entrada específica
Parámetros de consulta:
  • initialCatalog (string, requerido): 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
200 OK
Permiso encontrado y devuelto
404 Not Found
Permiso no encontrado
500 Internal Server Error
Error interno del servidor

POST /Master/Permisos/AddPermiso

Crea un nuevo permiso en el sistema. Este endpoint permite agregar una nueva configuración de permiso para un módulo y entrada específicos.
Body (JSON):
{ "modulo": "FACTURAS", "entrada": "CREAR", "nivel": 2.0, "control": "S", "firma": "S" }
Parámetros de consulta:
  • initialCatalog (string, requerido): 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
201 Created
Permiso creado exitosamente
{ "modulo": "FACTURAS", "entrada": "CREAR", "nivel": 2.0, "control": "S", "firma": "S" }
500 Internal Server Error
Error interno del servidor

PUT /Master/Permisos/UpdatePermiso/{modulo}/{entrada}

Actualiza un permiso existente en el sistema. Este endpoint permite modificar la configuración de un permiso ya registrado.
Parámetros de ruta:
  • modulo (string, requerido): Nombre del módulo del permiso a actualizar
  • entrada (string, requerido): Nombre de la entrada del permiso a actualizar
Body (JSON):
{ "modulo": "FACTURAS", "entrada": "CREAR", "nivel": 3.0, "control": "N", "firma": "S" }
Parámetros de consulta:
  • initialCatalog (string, requerido): 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
200 OK
Permiso actualizado exitosamente
404 Not Found
Permiso no encontrado
500 Internal Server Error
Error interno del servidor

DELETE /Master/Permisos/DeletePermiso/{modulo}/{entrada}

Elimina un permiso del sistema. Este endpoint permite remover una configuración de permiso específica.
Parámetros de ruta:
  • modulo (string, requerido): Nombre del módulo del permiso a eliminar
  • entrada (string, requerido): Nombre de la entrada del permiso a eliminar
Parámetros de consulta:
  • initialCatalog (string, requerido): 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
200 OK
Permiso eliminado exitosamente
{ "message": "Permiso deleted successfully", "permiso": { "modulo": "FACTURAS", "entrada": "CREAR", "nivel": 2.0, "control": "S", "firma": "S" } }
404 Not Found
Permiso no encontrado
500 Internal Server Error
Error interno del servidor

Modelo de Datos - Permiso

Propiedades del modelo Permiso:
  • Modulo (string, 30 chars): Identificador del módulo del sistema
  • Entrada (string, 30 chars): Identificador de la entrada específica del módulo
  • Nivel (double): Nivel de permiso requerido para acceder (0-9)
  • Control (string, 1 char): Control adicional de acceso (S/N)
  • Firma (string, 1 char): Requisito de firma para la operación (S/N)

🔑 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.

⚠️ Consideraciones de Seguridad

  • Los permisos son datos críticos del sistema de seguridad
  • Se recomienda implementar auditoría de cambios en permisos
  • Validar que el usuario tenga permisos para modificar permisos
  • Considerar el impacto de eliminar permisos en usuarios activos

Servicio Utilizado

IPermisoService - Servicio principal para la gestión de permisos
  • GetPermisos(): Obtiene todos los permisos
  • GetPermiso(): Obtiene un permiso por módulo y entrada
  • AddPermiso(): Crea un nuevo permiso
  • UpdatePermiso(): Actualiza un permiso existente
  • DeletePermiso(): Elimina un permiso

Casos de Uso Comunes

🎯 Escenarios de Aplicación

  • Configuración inicial: Establecer permisos base para nuevos módulos
  • Gestión de roles: Asignar diferentes niveles de acceso por funcionalidad
  • Auditoría de seguridad: Revisar y ajustar permisos existentes
  • Control de acceso: Restringir funcionalidades críticas del sistema
  • Compliance: Cumplir con requisitos de seguridad y auditoría