Gestión del acceso de usuarios
Resumen
El sistema de gestión del acceso de usuarios está diseñado para un control detallado sobre quién tiene acceso a qué recursos de la aplicación. Se utiliza un modelo de control de acceso basado en roles (RBAC), donde los usuarios se asignan a grupos y los derechos de acceso se otorgan a esos grupos. Esto asegura una gestión de acceso eficiente y segura.
Gestión de grupos
Creación de un nuevo grupo
- Ir a la sección de grupos:
- Abra la pestaña
Groups
.
- Abra la pestaña
- Agregar un grupo:
- Haga clic en el botón
Create Group
. - Proporcione un nombre descriptivo y un marcador.
- Asigne derechos de acceso iniciales.
- Haga clic en el botón
En un nuevo proyecto, siempre se crea un grupo Guest por defecto.
Herencia de derechos de acceso
En la pestaña "Grupos" se presentan los grupos previamente creados de forma jerárquica, el nuevo grupo creado se puede conectar a un grupo ya existente para que herede los derechos del grupo padre.
Si en el grupo padre hay una restricción en la ruta, y en el grupo hijo la misma restricción se sobrescribe, entonces la restricción final será la del grupo hijo, pero solo si en el padre no se ha especificado la opción "Permiso final".
La especificación de un grupo solo es posible si no se ha seleccionado ni un grupo padre ni un grupo hijo.
Modificación de derechos de acceso
La pestaña "Permissions" es clave para editar los derechos de acceso.
Si anteriormente ha especificado un grupo padre para la herencia de derechos, toda la información sobre los accesos establecidos se colocará en la tabla superior, la edición de los derechos heredados está prohibida. Los derechos que incluyen excepciones y los derechos no utilizados se agrupan por separado en la misma tabla.
Gestión de derechos de acceso
Creación de derechos de acceso
Para comenzar a crear un derecho, haga clic en el botón "Crear derecho" en la pestaña "Permissions".
Un derecho de acceso consiste en una combinación de método y ruta.

- Crear un conjunto mínimo de permisos:
- Esta opción permite minimizar la tarea de creación de derechos, generando el conjunto mínimo necesario de permisos.
Disponible solo si no hay permisos previamente establecidos.
- Establecer restricciones en la emisión de datos:
- La opción es aplicable solo cuando se selecciona "Crear un conjunto mínimo de permisos", establece una restricción en la emisión de datos (10 registros).
- Sección API:
- Parámetro obligatorio, si se crea un nuevo acceso, indica la ruta para seleccionar permisos.
- Ruta:
- La selección está disponible solo después de elegir la sección API, especifica la ruta para establecer derechos.
- Nombre:
- Campo obligatorio para el nombre del derecho.
- Tabla "Permissions":
- La tabla representa una selección de métodos HTTP para la ruta especificada, con opciones de "sin restricciones" y "con restricción en la cantidad de registros".
Para cualquier ruta en la tabla siempre se indican 4 métodos: GET, POST, PUT, DELETE.
-
Condiciones adicionales Estas condiciones no aparecen para todas las rutas, sino solo para las "de listado" y permiten configurar excepciones en los documentos obtenidos.
- Si, por ejemplo, necesita proporcionar acceso a todas las páginas, pero hacer una excepción, puede hacer clic en el botón "Seleccione qué datos desea excluir". En la ventana adicional que se abre, puede seleccionar los datos a los que desea restringir el acceso. Por ejemplo, para la sección API - páginas, se mostrará una lista jerárquica de páginas, para la sección de atributos - respectivamente, atributos.
Lista de rutas disponibles con condiciones adicionales:
/api/content/admins/all
/api/content/attributes-sets
/api/content/attributes-sets/{marker}/attributes
/api/content/pages
/api/content/blocks
/api/content/forms
/api/content/events/subscriptions
/api/content/orders-storage
/api/content/product-statuses
/api/content/templates
/api/content/template-previews
/api/content/integration-collections
Después de seleccionar los datos para excluir, aparecerán dos nuevas opciones: "Excluir" - la opción indica que los datos seleccionados queremos excluir. "Derecho final" - este derecho no se hereda en toda la cadena de grupos hijos (la opción se vuelve disponible solo si se selecciona la opción "Excluir").
La selección de condiciones adicionales depende de la ruta seleccionada y no siempre está disponible. Si hay tal selección, se marca con un indicador - "Exceptions available for selection".

Lista de rutas disponibles para configuración
Por defecto, los nuevos derechos van a la sección "Derechos no utilizados", para activarlos, basta con seleccionarlos, haciendo clic en la casilla a la izquierda del nombre.
Para abrir el editor, se utiliza el botón
Para eliminar, utilice
Comprensión de los derechos de acceso
Los derechos de acceso son configuraciones detalladas que determinan qué acciones puede realizar un grupo con ciertos recursos. Están organizados por secciones de API y pueden ser refinados adicionalmente mediante condiciones.
Búsqueda de derechos en la tabla
La búsqueda de los derechos necesarios en la tabla se realiza ingresando texto en el campo "Buscar derechos", seleccionando las secciones de API necesarias en el selector y eligiendo la opción "Seleccionar no utilizados".
Derechos finales
La pestaña de derechos finales es una tabla informativa con filtrado por secciones de API para facilitar la búsqueda.
Ejemplo: restricción de acceso a productos
- Sección API:
products
- Derechos de acceso:
- Lectura (
Read
): Sí - Adición (
Add
): No - Edición (
Edit
): No - Eliminación (
Delete
): No
- Lectura (
Integración con API
El sistema proporciona una API para la gestión programática de usuarios, grupos y derechos de acceso. A continuación se presentan ejemplos de operaciones típicas.
Ejemplo de solicitud
/api/content/attributes-sets/product_1/attributes
Respuesta, si la autorización es sin token (grupo Guest):
[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
}
]
Respuesta, con autorización, donde en los derechos se permiten todos los campos del atributo:
[
{
"type": "image",
"value": {},
"marker": "image",
"position": 1,
"listTitles": [],
"validators": {
"requiredValidator": {
"strict": true
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "textWithHeader",
"value": {},
"marker": "textheader",
"position": 4,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "text header"
},
"additionalFields": []
},
{
"type": "image",
"value": {},
"marker": "image1",
"position": 18,
"listTitles": [],
"validators": {
"sizeInPixelsValidator": {
"maxX": 0,
"maxY": 0
},
"checkingFilesValidator": {
"maxUnits": "kb",
"maxValue": 0,
"minUnits": "mb",
"minValue": 0,
"extensions": []
}
},
"localizeInfos": {
"title": "image"
},
"additionalFields": []
},
{
"type": "float",
"value": {},
"marker": "price",
"position": 19,
"listTitles": [],
"validators": {},
"localizeInfos": {
"title": "price"
},
"additionalFields": []
}
]
Como podemos ver, el usuario autorizado recibió el campo adicional price.