Permisos
Permisos
Prefijo: /api/permisos-rol
Requiere Auth: Sí
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ámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
id_tipo_usuario | int | ❌ | Filtrar 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:
curl "http://localhost/api/permisos-rol?id_tipo_usuario=2" -H "Authorization: Bearer <token>"Python:
import httpxresp = 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: Sí
Permiso requerido: permisos, leer
Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)
cURL:
curl http://localhost/api/permisos-rol/1 -H "Authorization: Bearer <token>"POST /api/permisos-rol
Descripción: Crea un nuevo permiso
Requiere Auth: Sí
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:
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 httpxresp = 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: Sí
Permiso requerido: permisos, actualizar
Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)
cURL:
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: Sí
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:
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: Sí
Permiso requerido: permisos, eliminar
Respuesta exitosa: 200 OK
Response:
{ "mensaje": "Permiso eliminado exitosamente"}cURL:
curl -X DELETE http://localhost/api/permisos-rol/1 -H "Authorization: Bearer <token>"