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