Saltar al contenido principal
Versión: v0.8.0 🚧

Roles

Gestión de Roles​

Los endpoints de roles permiten gestionar los diferentes roles de usuario en el sistema.

GET /roles​

Obtiene todos los roles del sistema.

Authorization: roles_read

cURL Example:

curl -X GET http://127.0.0.1:9154/roles \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN"

Response Body (Éxito - 200 OK):

[
{
"id": "e7349203-1bdf-4d8a-8a83-0f5dccb23e1b",
"role": "coolrolename",
"password": "******",
"isAdmin": true
}
]

Response Body (Lista vacía - 200 OK):

"No roles found"

GET /roles/{id}​

Obtiene un rol específico por su ID.

Authorization: roles_read

Path Parameters:

  • id (string): ID del rol a obtener.

cURL Example:

curl -X GET http://127.0.0.1:9154/roles/76ee1086-b945-4170-b2e6-9fbeb95ae0be \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN"

Response Body (Éxito - 200 OK):

{
"id": "e7349203-1bdf-4d8a-8a83-0f5dccb23e1b",
"role": "coolrolename",
"password": "******",
"isAdmin": true
}

POST /roles​

Crea un nuevo rol en el sistema.

Authorization: roles_create

Request Body:

{
"role": "string",
"password": "string",
"isAdmin": true
}

cURL Example:

curl -X POST http://127.0.0.1:9154/roles \
-H 'Content-Type: application/json' \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN" \
-d '{
"role": "admin",
"password": "S3cur3P4ssw0rd!!",
"isAdmin": true
}'

Response Body (Éxito - 201 Created):

{
"id": "5f80cf01-9448-4332-a981-0140cba12279",
"message": "Role added successfully"
}

Response Body (Error - 400 Bad Request): nombre de rol en blanco o inválido.

"Invalid role data"

PUT /roles/{id}​

Actualiza un rol existente.

Authorization: roles_update

Path Parameters:

  • id (string): ID del rol a actualizar.

Request Body:

{
"role": "admin",
"password": "S3cur3P4ssw0rd!!",
"isAdmin": true
}

cURL Example:

curl -X PUT http://127.0.0.1:9154/roles/76ee1086-b945-4170-b2e6-9fbeb95ae0be \
-H 'Content-Type: application/json' \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN" \
-d '{
"role": "admin",
"password": "S3cur3P4ssw0rd123!!",
"isAdmin": true
}'

Response Body (Éxito - 200 OK):

{
"id": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"message": "Role updated successfully"
}

Response Body (Error - 400 Bad Request): nombre de rol en blanco.

"Invalid role data"

Response Body (Error - 404 Not Found):

"Role with ID: {id} not found"

DELETE /roles/{id}​

Elimina un rol del sistema.

Authorization: roles_delete

Path Parameters:

  • id (string): ID del rol a eliminar.

cURL Example:

curl -X DELETE http://127.0.0.1:9154/roles/76ee1086-b945-4170-b2e6-9fbeb95ae0be \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN"

Response: 204 No Content (sin cuerpo).


Permisos por Rol​

GET /roles/{id}/permissions​

Lista los permisos asignados a un rol.

Authorization: roles_read

Path Parameters:

  • id (string): ID del rol.

cURL Example:

curl -X GET http://127.0.0.1:9154/roles/76ee1086-b945-4170-b2e6-9fbeb95ae0be/permissions \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN"

Response Body (Éxito - 200 OK):

[
{ "id": "0f3c...", "name": "products_read", "description": "List and view products", "enabled": true },
{ "id": "1a2b...", "name": "orders_create", "description": "Create new orders", "enabled": true }
]

Response Body (Sin permisos - 200 OK):

"No permissions found for this role"

PUT /roles/{id}/permissions​

Reemplaza completamente los permisos asignados a un rol.

Authorization: roles_update

Path Parameters:

  • id (string): ID del rol.

Request Body:

{
"permissions": ["products_read", "orders_create", "orders_read"]
}

Las claves en permissions corresponden al campo name de cada permiso.

cURL Example:

curl -X PUT http://127.0.0.1:9154/roles/76ee1086-b945-4170-b2e6-9fbeb95ae0be/permissions \
-H 'Content-Type: application/json' \
-H "Cookie: accessToken=$ACCESS_TOKEN" \
-H "Cookie: refreshToken=$REFRESH_TOKEN" \
-d '{
"permissions": ["products_read", "orders_create", "orders_read"]
}'

Response Body (Éxito - 200 OK):

{
"roleId": "76ee1086-b945-4170-b2e6-9fbeb95ae0be",
"assigned": 3
}

Response Body (Error - 404 Not Found): el rol no existe.

"Role with ID: {id} not found"

Notas​

información
  • Los IDs de roles son UUID únicos en el sistema.
  • La eliminación de un rol puede afectar a usuarios que lo tengan asignado.
  • El campo role (nombre) es requerido y no puede estar en blanco al crear o actualizar.
  • Un rol puede crearse o editarse sin permisos asignados.