Isolation multi-tenant
Comment Swaloo garantit qu'un marchand ne voit que ses propres données.
Isolation multi-tenant
Le module Marchand de Swaloo repose sur une isolation stricte : un marchand ne doit jamais voir les expéditions, profils ou statistiques d'un autre marchand, ni le reste des données de l'organisation. Cette isolation est appliquée à deux niveaux : les permissions sur le profil marchand et les règles de sécurité sur les expéditions.
Permissions sur le profil marchand
L'accès à un profil marchand est arbitré par deux permissions :
| Permission | Code | Rôle |
|---|---|---|
| Voir | MERCHANT_VIEW | Consulter un profil marchand |
| Modifier | MERCHANT_EDIT | Modifier un profil marchand |
Ces permissions sont décidées selon le rôle et l'appartenance à l'organisation :
| Rôle | MERCHANT_VIEW | MERCHANT_EDIT |
|---|---|---|
| Super administrateur | Toujours | Toujours |
| Administrateur d'organisation | Sur les marchands de son organisation | Sur les marchands de son organisation |
| Dispatcher | Sur les marchands de son organisation | Non |
| Marchand | Sur son propre profil uniquement | Sur son propre profil uniquement |
La première barrière est l'appartenance à l'organisation : si l'utilisateur et le marchand n'appartiennent pas à la même organisation, l'accès est refusé d'emblée (sauf super administrateur). Un marchand est ensuite restreint à son propre profil.
Isolation des expéditions
Les règles de sécurité des expéditions garantissent qu'un marchand n'accède qu'à ses propres expéditions. Une expédition est rattachée à un marchand via son champ merchant.
Lorsqu'un utilisateur a le rôle ROLE_MERCHANT, l'accès à une expédition est conditionné à la fois à la présence d'un marchand sur l'expédition et à la permission MERCHANT_VIEW sur ce marchand :
- Lecture d'une expédition (collection et détail) : autorisée pour un marchand seulement si l'expédition a un marchand et que
MERCHANT_VIEWest accordé sur ce marchand. - Modification d'une expédition : autorisée pour un marchand seulement si l'expédition a un marchand, que
MERCHANT_EDITest accordé, et que l'expédition n'est pas dans un état terminal.
Comme MERCHANT_VIEW / MERCHANT_EDIT ne sont accordés à un marchand que sur son propre profil, un marchand ne peut consulter ni modifier que les expéditions qui lui sont rattachées. Le filtre de recherche par merchant permet par ailleurs de restreindre les listes d'expéditions à un marchand donné.
Toutes ces opérations exigent également la permission de fonctionnalité FEATURE_MERCHANT. Sans le module activé sur le forfait, l'accès marchand n'est pas disponible, quelles que soient les permissions individuelles.
Voir aussi : Vue d'ensemble du module Marchand | Gérer les marchands