Gestion de l'accès utilisateur
Aperçu
Le système de gestion de l'accès utilisateur est conçu pour un contrôle détaillé sur qui a accès à quels ressources de l'application.
Le système utilise un modèle de contrôle d'accès basé sur les rôles (RBAC), où les utilisateurs sont assignés à des groupes et les droits d'accès sont accordés à ces groupes. Cela permet une gestion de l'accès efficace et sécurisée.
Gestion des groupes
Création d'un nouveau groupe
- Accéder à la section des groupes :
- Ouvrez l'onglet
Groups
.
- Ouvrez l'onglet
- Ajouter un groupe :
- Cliquez sur le bouton
Create Group
. - Indiquez un nom descriptif et un marqueur.
- Attribuez des droits d'accès initiaux.
- Cliquez sur le bouton
Dans un nouveau projet, un groupe Guest est toujours créé par défaut.
Héritage des droits d'accès
Dans l'onglet "Groupes", les groupes précédemment créés sont présentés de manière hiérarchique, le nouveau groupe créé peut être rattaché à un groupe déjà existant pour hériter des droits du groupe parent.
Si le groupe parent a une restriction de chemin, et que la même restriction est écrasée dans le groupe enfant, la restriction finale sera celle du groupe enfant, mais seulement si l'option "Autorisation finale" n'est pas spécifiée dans le groupe parent.
La désignation d'un groupe n'est possible que si aucun groupe parent ou enfant n'est déjà sélectionné.
Modification des droits d'accès
L'onglet "Permissions" est clé pour l'édition des droits d'accès.
Si vous avez précédemment spécifié un groupe parent pour l'héritage des droits, toutes les informations sur les accès établis seront placées dans le tableau en haut, l'édition des droits hérités est interdite.
Les droits incluant des exceptions et les droits non utilisés sont regroupés séparément dans le même tableau.
Gestion des droits d'accès
Création de droits d'accès
Pour commencer à créer un droit, cliquez sur le bouton "Créer un droit" dans l'onglet "Permissions".
Un droit d'accès est composé d'une combinaison de méthode et de chemin.

- Créer un ensemble minimal de permissions :
- Cette option permet de minimiser la tâche de création de droits en générant l'ensemble minimal nécessaire de permissions.
Disponible uniquement s'il n'y a pas de permissions précédemment établies.
- Définir des restrictions sur la délivrance des données :
- L'option est applicable uniquement lorsque "Créer un ensemble minimal de permissions" est sélectionné, elle impose une restriction sur la délivrance des données (10 enregistrements).
- Section API :
- Paramètre obligatoire, si vous créez un nouvel accès, indique le chemin pour sélectionner les permissions.
- Chemin :
- La sélection est disponible uniquement après avoir choisi la section API, précise le chemin pour établir les droits.
- Nom :
- Champ obligatoire pour le nom du droit.
- Tableau "Permissions" :
- Le tableau représente un choix parmi les méthodes HTTP pour le chemin spécifié, avec indication des options "sans restrictions" et "avec restriction du nombre d'enregistrements".
Pour tout chemin dans le tableau, 4 méthodes sont toujours indiquées : GET, POST, PUT, DELETE.
-
Conditions supplémentaires Ces conditions apparaissent non pas pour tous les chemins, mais uniquement pour les "listes" et permettent de configurer des exceptions sur les documents obtenus.
- Par exemple, si vous devez fournir un accès à toutes les pages, mais faire une exception, vous pouvez cliquer sur le bouton "Sélectionnez les données que vous souhaitez exclure". Dans la fenêtre supplémentaire qui s'ouvre, vous pouvez choisir les données pour lesquelles l'accès doit être restreint. Par exemple, pour la section API - pages, une liste hiérarchique des pages sera affichée, pour la section des attributs - respectivement les attributs.
Liste des chemins disponibles avec conditions supplémentaires :
/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
Après avoir sélectionné les données à exclure, deux nouvelles options apparaîtront : "Exclure" - l'option indique que les données sélectionnées doivent être exclues. "Droit final" - ce droit n'est pas hérité dans toute la chaîne de groupes enfants (l'option devient disponible uniquement si l'option "Exclure" est sélectionnée).
La sélection des conditions supplémentaires dépend du chemin choisi et n'est pas toujours disponible. Lorsqu'une telle sélection est possible, elle est marquée par "Exceptions disponibles pour sélection".

Liste des chemins disponibles pour la configuration
Par défaut, les nouveaux droits sont placés dans la section "Droits non utilisés", pour les activer, il suffit de sélectionner en cochant la case à gauche du nom.
Pour ouvrir l'éditeur, utilisez le bouton
Pour supprimer, utilisez
Compréhension des droits d'accès
Les droits d'accès sont des réglages détaillés qui définissent quelles actions un groupe peut effectuer sur des ressources spécifiques. Ils sont organisés par sections API et peuvent être précisés davantage à l'aide de conditions.
Recherche de droits dans le tableau
La recherche des droits nécessaires dans le tableau se fait en saisissant du texte dans le champ "Recherche de droits", en sélectionnant les sections API nécessaires dans le sélecteur et en choisissant l'option "Sélectionner les droits non utilisés".
Droits finaux
L'onglet des droits finaux est un tableau informatif avec filtrage par sections API pour simplifier la recherche.
Exemple : restriction d'accès aux produits
- Section API :
products
- Droits d'accès :
- Lecture (
Read
): Oui - Ajout (
Add
): Non - Édition (
Edit
): Non - Suppression (
Delete
): Non
- Lecture (
Intégration avec l'API
Le système fournit une API pour la gestion programmatique des utilisateurs, des groupes et des droits d'accès. Voici des exemples d'opérations typiques.
Exemple de requête
/api/content/attributes-sets/product_1/attributes
Réponse, si l'autorisation est sans token (groupe Invité) :
[
{
"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": []
}
]
Réponse, avec autorisation, où tous les champs d'attribut sont autorisés :
[
{
"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": []
}
]
Comme nous le voyons, l'utilisateur autorisé a reçu un champ supplémentaire "price".