Permisos
¿Qué son los permisos?
Sección titulada «¿Qué son los permisos?»Los permisos en DatAscend regulan las acciones que un rol puede ejecutar sobre un objeto específico.
Definición y finalidad de los permisos dentro del sistema.
Sección titulada «Definición y finalidad de los permisos dentro del sistema.»A continuación se definen las acciones que pueden gestionar los permisos y los objetos que se pueden administrar con ellos.
Acciones
Sección titulada «Acciones»Las acciones definen qué operaciones se pueden realizar sobre los objetos.
| Acción | Descripción |
|---|---|
| Gestionar | Permite gestionar objetos existentes. |
| Crear | Permite crear nuevos objetos. |
| Obtener | Permite ver objetos existentes. |
| Actualizar | Permite modificar objetos existentes. |
| Eliminar | Permite eliminar objetos existentes. |
| Obtener propios | Permite ver solo los objetos existentes creados por el usuario |
| Actualizar propios | Permite modificar solo los objetos existentes creados por el usuario. |
| Eliminar propios | Permite eliminar solo los objetos existentes creados por el usuario. |
Objetos
Sección titulada «Objetos»Los objetos representan los recursos o entidades dentro del sistema con los que los usuarios pueden interactuar, tales como:
- Menús de categorías
- Relaciones
- Fuentes de datos
- Estructura
- Entidades
- Dominios
- Informes
¿Cómo se utilizan para controlar el acceso a recursos, acciones o elementos de la interfaz de usuario?
Sección titulada «¿Cómo se utilizan para controlar el acceso a recursos, acciones o elementos de la interfaz de usuario?»Asignar una acción a un objeto crea un permiso. Ejemplo:
Asignar la acción «Obtener» y el objeto «Entidad» permite al rol con ese permiso ver todas las entidades del sistema.
Relación entre permisos, roles y usuarios.
Sección titulada «Relación entre permisos, roles y usuarios.»A los «Usuarios» se les asignan «roles», y ese «rol» tiene «permisos», que consisten en una «acción» sobre un «objeto».
¿Qué puntos finales interactúan con los permisos?
Sección titulada «¿Qué puntos finales interactúan con los permisos?»Obtener los permisos por objeto e id de rol.
Sección titulada «Obtener los permisos por objeto e id de rol.»Recuperar los permisos por objeto e id de rol.
Endpoint:
GET /api/v1/data-studio/:roleId/permission/:objectIdParámetros:
| Name | Type | From | Description |
|---|---|---|---|
roleId | number | path | id del rol |
objectId | string | path | id del objeto |
Respuesta:
{ "error": false, "status": 200, "message": "string", "errors": [{}], "data": [ { "id": "0", "description": "(manage users on system)", "active": true, "objectId": "1", "actionId": "1", "actionItem": "Manage", "objectItem": "user", "objectType": "System", "allowed": true, "allowedSdate": "2024-10-23T06:00:00.000Z", "allowedEdate": "2024-10-23T06:00:00.000Z" } ], "pagination": { "hasPreviousPage": true, "hasNextPage": true, "previousPage": 0, "nextPage": 0, "recordsTotal": 0, "currentPage": 0, "startIndex": 0, "numPages": 0, "limit": 0 }}Crear permisos almacenados en un rol en Studio por un objeto determinado
Sección titulada «Crear permisos almacenados en un rol en Studio por un objeto determinado»Crear permisos almacenados en un rol en Studio por un objeto determinado.
Endpoint:
POST /api/v1/data-studio/:roleId/permissionParámetros:
| Name | Type | From | Description |
|---|---|---|---|
roleId | number | path | id del rol |
Cuerpo de petición:
{ "permissions": [ { "id": "1", "description": "(manage users on system)", "active": true, "objectId": 3196, "actionId": 2, "actionItem": "Manage", "objectItem": "user", "objectType": "System" } ]}id: id del permisodescription: descripción del permisoactive: si el permiso está activoobjectId: id del objetoactionId: id de la acciónactionItem: descripción de la acciónobjectItem: elemento del objetoobjectType: tipo del objeto
Respuesta:
{ "error": false, "status": 200, "message": "string", "errors": [{}], "data": [ { "id": "0", "description": "(manage users on system)", "active": true, "objectId": "1", "actionId": "1", "actionItem": "Manage", "objectItem": "user", "objectType": "System", "allowed": true, "allowedSdate": "2024-10-23T06:00:00.000Z", "allowedEdate": "2024-10-23T06:00:00.000Z" } ], "pagination": { "hasPreviousPage": true, "hasNextPage": true, "previousPage": 0, "nextPage": 0, "recordsTotal": 0, "currentPage": 0, "startIndex": 0, "numPages": 0, "limit": 0 }}Ruta para traer permisos de entidades
Sección titulada «Ruta para traer permisos de entidades»Endpoint:
GET /api/v1/entities/{entity}/permissionsParámetros:
| Name | Type | From | Description |
|---|---|---|---|
entity | string | path | id de la entidad |
version | string | query | versión de la aplicación |
Ruta para asignar permisos de entidades
Sección titulada «Ruta para asignar permisos de entidades»Endpoint:
POST /api/v1/entities/{entity}/permissionsParámetros:
| Name | Type | From | Description |
|---|---|---|---|
entity | string | path | id de la entidad |
version | string | query | versión de la aplicación |
Cuerpo de Petición:
[ { "permissionId": "string", "actionItem": "string", "actionId": "string", "roleItem": "string", "roleId": "string", "active": true }]Respuesta:
{ "status": 201, "error": false, "entityName": "string", "data": [ { "permissionId": "string", "actionItem": "string", "actionId": "string", "roleItem": "string", "roleId": "string", "active": true } ]}Obtener permisos almacenados en un rol por objeto determinado
Sección titulada «Obtener permisos almacenados en un rol por objeto determinado»Recuperar permisos almacenados en un rol en Studio por un objeto determinado.
Endpoint:
/api/v1/permissions/:roleIdParámetros:
| Name | Type | From | Description |
|---|---|---|---|
| roleId` | number | path | id del rol |
Respuesta:
{error": false,status": 200,message": "string",errors": [{}],data": [{"name": "action","permission": true}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}Traer todos los permisos almacenados en rol
Sección titulada «Traer todos los permisos almacenados en rol»Endpoint:
/api/v1/permissions/all/:roleIdParámetros:
| Name | Type | From | Description |
|---|---|---|---|
roleId | number | path | id del rol |
Respuesta:
{error": false,status": 200,message": "string",errors": [{}],data": [{"id": "1","description": "(manage users on system)","active": true,"objectId": "1","actionId": "1","actionItem": "Manage","objectItem": "user","objectType": "System","allowed": true,"allowedSdate": "2024-10-23T06:00:00.000Z","allowedEdate": "2024-10-23T06:00:00.000Z"}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}Traer todos los permisos almacenados en un objeto
Sección titulada «Traer todos los permisos almacenados en un objeto»Traer todos los permisos disponibles almacenados en un objeto específico.
Endpoint:
/api/v1/roles/permissions/:objectType/:objectItemParámetros:
| Name | Type | From | Description |
|---|---|---|---|
objectType | string | path | tipo del objeto |
objectItem | string | path | Item/nombre del objecto |
limit | number | query | limite de paginacion |
page | number | query | pagina de paginacion |
Respuesta:
{error": false,status": 200,message": "string",errors": [{}],data": [{"id": "1","actionId": "1","objectId": "1","active": true,"description": "admin"}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}Obtener permisos almacenados en un rol por objeto dado
Sección titulada «Obtener permisos almacenados en un rol por objeto dado»Obtener permisos almacenados en un rol para un objeto dado.
Endpoint:
/api/v1/roles/:roleId/permissions/:objectType/:objectItemParámetros:
| Name | Type | From | Description |
|---|---|---|---|
roleId | number | path | id del rol |
objectType | string | path | tipo del objeto |
objectItem | string | path | Item/nombre del objecto |
limit | number | query | limite de paginacion |
page | number | query | pagina de paginacion |
Respuesta:
{error": false,status": 200,message": "string",errors": [{}],data": [{"roleId": "1","objectItem": "cattle","objectType": "Table","permissions": "1"}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}Sobrescribir los permisos almacenados en el rol por objeto determinado
Sección titulada «Sobrescribir los permisos almacenados en el rol por objeto determinado»Sobrescribir los permisos almacenados en un rol para un objeto determinado.
Endpoint:
/api/v1/roles/:roleId/permissionsParámetros:
| Name | Type | From | Description |
|---|---|---|---|
roleId | number | path | id del rol |
Cuerpo de petición:
{objectItem": "cattle",objectType": "Table",permissions": 1}Respuesta:
{error": false,status": 200,message": "string",errors": [{}],data": [{"roleId": "1","objectItem": "cattle","objectType": "Table","permissions": "1","id": "1","actionId": "1","objectId": "1","active": true,"description": "Permission applied in object"}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}Traer información sobre el usuario actual (incluyendo permisos)
Sección titulada «Traer información sobre el usuario actual (incluyendo permisos)»Endpoint:
/api/v1/users/meRespuesta:
{error": false,status": 200,message": "string",errors": [{}],data": {"id": "1","contactId": 1,"email": "email@email.co","username": "Administrador","createdAt": "2022-01-05T16:27:16.560Z","updatedAt": "2022-01-05T16:27:16.560Z","active": true,"login": true,"loginInfo": {"message": "status_messages.user_logged_in_successfully","remoteAddr": "127.0.0.1","userAgent": "Mozilla/5.0"},"roles": [{"id": "1","name": "Administrador","dashboardCustomQuery": "2"}],"permissions": [{"actionItem": "string","domain": "string","objectItem": "string","role": "string","roleId": "string"}],"domains": [{"id": 0,"name": "Any domain","description": "Any description","subDomains": ["string"],"parentId": 0,"createdAt": "1970-01-01T00:00:00Z","updatedAt": "1970-01-01T00:00:00Z","active": true}],"isAdmin": true,"menu": [{"category": "category","menuOptions": [{"menuId": "2","menuName": "test","entity": "animal"}]}],pagination": {"hasPreviousPage": true,"hasNextPage": true,"previousPage": 0,"nextPage": 0,"recordsTotal": 0,"currentPage": 0,"startIndex": 0,"numPages": 0,"limit": 0}}}