Saltearse al contenido

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.

Las acciones definen qué operaciones se pueden realizar sobre los objetos.

AcciónDescripción
GestionarPermite gestionar objetos existentes.
CrearPermite crear nuevos objetos.
ObtenerPermite ver objetos existentes.
ActualizarPermite modificar objetos existentes.
EliminarPermite eliminar objetos existentes.
Obtener propiosPermite ver solo los objetos existentes creados por el usuario
Actualizar propiosPermite modificar solo los objetos existentes creados por el usuario.
Eliminar propiosPermite eliminar solo los objetos existentes creados por el usuario.

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.

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/:objectId

Parámetros:

NameTypeFromDescription
roleIdnumberpathid del rol
objectIdstringpathid 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/permission

Parámetros:

NameTypeFromDescription
roleIdnumberpathid 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 permiso
  • description: descripción del permiso
  • active: si el permiso está activo
  • objectId: id del objeto
  • actionId: id de la acción
  • actionItem: descripción de la acción
  • objectItem: elemento del objeto
  • objectType: 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
}
}

Endpoint:

GET /api/v1/entities/{entity}/permissions

Parámetros:

NameTypeFromDescription
entitystringpathid de la entidad
versionstringqueryversión de la aplicación

Endpoint:

POST /api/v1/entities/{entity}/permissions

Parámetros:

NameTypeFromDescription
entitystringpathid de la entidad
versionstringqueryversió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/:roleId

Parámetros:

NameTypeFromDescription
roleId`numberpathid 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
}}

Endpoint:

/api/v1/permissions/all/:roleId

Parámetros:

NameTypeFromDescription
roleIdnumberpathid 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/:objectItem

Parámetros:

NameTypeFromDescription
objectTypestringpathtipo del objeto
objectItemstringpathItem/nombre del objecto
limitnumberquerylimite de paginacion
pagenumberquerypagina 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/:objectItem

Parámetros:

NameTypeFromDescription
roleIdnumberpathid del rol
objectTypestringpathtipo del objeto
objectItemstringpathItem/nombre del objecto
limitnumberquerylimite de paginacion
pagenumberquerypagina 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/permissions

Parámetros:

NameTypeFromDescription
roleIdnumberpathid 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/me

Respuesta:

{
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}}}