Skip to content

Permisos

Permisos

Prefijo: /api/permisos-rol
Requiere Auth:
Permiso requerido: permisos, *

Módulo de permisos del sistema RBAC. Cada permiso define las acciones CRUD que un rol puede ejecutar sobre un módulo específico dentro de un tenant.

GET /api/permisos-rol

Descripción: Lista los permisos del tenant (opcional: filtrar por id_tipo_usuario)
Requiere Auth: Sí (Admin o Superadmin)
Permiso requerido: permisos, leer

Parámetros query:

ParámetroTipoObligatorioDescripción
id_tipo_usuariointFiltrar por rol (1=Admin, 2=Asistente)

Respuesta exitosa: 200 OK

Response:

{
"data": [
{
"id": 1,
"modulo": "ventas",
"permiso_crear": true,
"permiso_leer": true,
"permiso_actualizar": true,
"permiso_eliminar": false,
"id_tipo_usuario": 2,
"tenant_id": "uuid-tenant"
}
],
"meta": {
"page": 1,
"page_size": 10,
"total": 10,
"total_pages": 1
}
}

cURL:

Terminal window
curl "http://localhost/api/permisos-rol?id_tipo_usuario=2" -H "Authorization: Bearer <token>"

Python:

import httpx
resp = httpx.get("http://localhost/api/permisos-rol",
params={"id_tipo_usuario": 2},
headers={"Authorization": f"Bearer {token}"})
permisos = resp.json()

JavaScript:

const resp = await fetch('http://localhost/api/permisos-rol?id_tipo_usuario=2', {
headers: {'Authorization': `Bearer ${token}`}
});
const permisos = await resp.json();

GET /api/permisos-rol/{permiso_id}

Descripción: Obtiene un permiso por ID
Requiere Auth:
Permiso requerido: permisos, leer

Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)

cURL:

Terminal window
curl http://localhost/api/permisos-rol/1 -H "Authorization: Bearer <token>"

POST /api/permisos-rol

Descripción: Crea un nuevo permiso
Requiere Auth:
Permiso requerido: permisos, crear

Request:

{
"modulo": "reportes",
"permiso_crear": false,
"permiso_leer": true,
"permiso_actualizar": false,
"permiso_eliminar": false,
"id_tipo_usuario": 2
}

Respuesta exitosa: 201 Created

cURL:

Terminal window
curl -X POST http://localhost/api/permisos-rol \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"modulo":"reportes","permiso_crear":false,"permiso_leer":true,"permiso_actualizar":false,"permiso_eliminar":false,"id_tipo_usuario":2}'

Python:

import httpx
resp = httpx.post("http://localhost/api/permisos-rol",
json={"modulo": "reportes", "permiso_crear": False, "permiso_leer": True, "permiso_actualizar": False, "permiso_eliminar": False, "id_tipo_usuario": 2},
headers={"Authorization": f"Bearer {token}"})
permiso = resp.json()

JavaScript:

const resp = await fetch('http://localhost/api/permisos-rol', {
method: 'POST',
headers: {'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`},
body: JSON.stringify({modulo: 'reportes', permiso_crear: false, permiso_leer: true, permiso_actualizar: false, permiso_eliminar: false, id_tipo_usuario: 2})
});

PUT /api/permisos-rol/{permiso_id}

Descripción: Actualiza un permiso
Requiere Auth:
Permiso requerido: permisos, actualizar

Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)

cURL:

Terminal window
curl -X PUT http://localhost/api/permisos-rol/1 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"permiso_eliminar":true}'

PUT /api/permisos-rol/upsert/{id_tipo_usuario}

Descripción: Reemplaza TODOS los permisos de un rol+tenant de una sola vez
Requiere Auth:
Permiso requerido: permisos, actualizar

Request:

{
"permisos": [
{
"modulo": "ventas",
"permiso_crear": true,
"permiso_leer": true,
"permiso_actualizar": true,
"permiso_eliminar": false,
"id_tipo_usuario": 2
}
]
}

Respuesta exitosa: 200 OK

cURL:

Terminal window
curl -X PUT http://localhost/api/permisos-rol/upsert/2 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"permisos":[{"modulo":"ventas","permiso_crear":true,"permiso_leer":true,"permiso_actualizar":true,"permiso_eliminar":false,"id_tipo_usuario":2}]}'

DELETE /api/permisos-rol/{permiso_id}

Descripción: Elimina un permiso
Requiere Auth:
Permiso requerido: permisos, eliminar

Respuesta exitosa: 200 OK

Response:

{
"mensaje": "Permiso eliminado exitosamente"
}

cURL:

Terminal window
curl -X DELETE http://localhost/api/permisos-rol/1 -H "Authorization: Bearer <token>"