Fichiers XML et DTD MemberRegistrationAttributes

Le fichier de configuration MemberRegistrationAttributes.xml indique les attributs qui doivent être affectés automatiquement aux utilisateurs et aux organisations au cours de l'inscription d'utilisateurs et d'organisations, ainsi que quelques scénarios d'authentification. Ce fichier suit le format défini par le fichier MemberRegistrationAttributes.dtd.

Les fichiers DTD et XML se trouvent dans le répertoire workspace_dir/WC/xml/member. Ce fichier peut être écrasé lors de la publication d'un magasin, mais une copie de sauvegarde est enregistrée dans le même répertoire.

Le fichier est divisé en quatre sections principales :

UserRoles
Définit les rôles qu'un utilisateur recevrait automatiquement dans une organisation lors de l'inscription.
OrganizationRoles
Définit les rôles qu'une organisation recevrait automatiquement lors de l'inscription.
BusinessEntities
Définit les organisations qui peuvent être automatiquement définies comme des entités commerciales lorsqu'elles sont créées. Une entité commerciale est une organisation qui peut avoir des comptes professionnels.
RegistrationParents
Définit où créer de nouveaux utilisateurs ou de nouvelles organisations pour un type d'inscription particulier.

UserRoles

La section UserRoles contient des nœuds utilisateur. L'algorithme d'affectation des rôles s'itère dans la liste des nœuds utilisateur et renvoie le premier qui correspond. Ce processus est basé sur les règles suivantes :

registrationType
Type de processus d'inscription ou d'authentification. Les valeurs admises dans la section UserRoles sont les suivantes :
UserRegistration
Un utilisateur s'inscrit sans spécifier le type d'inscription dans les propriétés de requête de la commande, par exemple, UserRegistrationAddCmd
UserRegistrationToStoreGrandparentOrg
Un utilisateur s'inscrit en spécifiant registrationType=UserRegistrationToStoreGrandparentOrg dans les propriétés de requête de la commande, par exemple, UserRegistrationAddCmd. Cela permet à l'utilisateur d'obtenir un rôle dans l'organisation grand-mère du magasin.
ResellerRegistration
Un utilisateur s'inscrit dans le cadre de la commande ResellerRegistrationAddCmd
Ajout d'enregistrement d'un acheteur
Un utilisateur s'inscrit dans le cadre de la commande de BuyerRegistrationCmd
LDAPLogon
Un utilisateur s'authentifie à l'aide de la commande Logon lorsque HCL Commerce est configuré pour s'authentifier par rapport à un serveur LDAP.
SSO
Un utilisateur s'authentifie à l'aide de l'authentification unique
memberAncestor
Nom distinctif (DN) de l'entité organisationnelle dans laquelle le nouvel utilisateur est créé. La valeur DN dans ce fichier est insensible à la casse, mais dans la base de données, elle doit être en minuscules.
storeAncestor
Le magasin auquel l'utilisateur s'inscrit doit être la propriété d'une organisation qui descend de l'organisation ancêtre spécifiée. L'organisation ancêtre est identifiée par son nom distinctif.

Si tous les critères précédents sont satisfaits par le scénario d'inscription actuel, les rôles sont automatiquement attribués à l'utilisateur tel que spécifié dans les sous-éléments de rôle. Chaque rôle se compose des éléments suivants :

nom
Nom du rôle à attribuer.
roleContext
Spécifie à quelle organisation le rôle de l'utilisateur peut être affecté. Peut avoir les valeurs suivantes :
  • userParent - Le rôle est appliqué à l'organisation qui est le parent immédiat de l'utilisateur.
  • storeOwner - Le rôle est attribué à l'organisation qui possède le magasin auquel l'utilisateur s'inscrit.
  • storeGrandparentOrg - Le rôle est attribué à l'organisation mère de l'organisation qui possède le magasin auquel l'utilisateur s'inscrit.
  • explicite - Le rôle est attribué à l'organisation explicitement spécifiée par l'attribut DN.
DN
Si roleContext = "explicit", le DN représente le nom distinctif de l'organisation dans laquelle l'utilisateur se voit attribuer un rôle. Si roleContext = "userParent" ou "storeOwner", l'organisation représentée par le roleContext doit être égale à l'organisation représentée par le DN ou descendre de celle-ci.

Exemple pour UserRoles :

<UserRoles>        
                  <User registrationType="UserRegistration" 
                                          memberAncestor="o=Default Organization,o=Root Organization"
                                          storeAncestor="o=Root Organization">           

                        <Role name="Registered Customer"roleContext="storeOwner" DN="o=Reseller Organization,o=Root Organization"/> 
                        <Role name="Registered Customer" roleContext="storeOwner" DN="o=Seller Organization,o=Root Organization"/>        

                   </User>        
 
                   <User registrationType="UserRegistrationToStoreGrandparentOrg"                             
                                          memberAncestor="o=default organization,o=root organization"   
                                          storeAncestor="o=root organization">           

                                   <Role name="Registered Customer" roleContext="storeGrandparentOrg"DN="o=root organization"/>        
                   </User>        
                   ...
</UserRoles>
    

Dans cet exemple, HCL Commerce parcourt la liste des noeuds Utilisateur jusqu'à en trouver un qui corresponde. La correspondance est déterminée par les règles suivantes :

  • Le registrationType (le système lance une instruction UserRegistrationAdd standard).
  • L'ancêtre du membre (dans le cas présent, l'organisation parent de l'utilisateur doit se trouver sous l'organisation par défaut).
  • L'ancêtre du magasin (dans ce cas, le système correspond à n'importe quel magasin, car l'ancêtre du magasin est défini comme l'organisation racine, qui est un ancêtre de chaque magasin).

Une fois que HCL Commerce localise un groupe de rôles correspondant, il tente d'attribuer les rôles de ce groupe. Dans ce cas, deux rôles sont définis dans le groupe. Les deux sont des rôles de client inscrit à appliquer à l'organisation qui possède le magasin auquel l'utilisateur s'inscrit. Les rôles sont qualifiés par l'ancêtre du magasin (ce qui signifie que HCL Commerce n'applique le rôle que si le magasin est quelque part dans le DN spécifié).

OrganizationRoles

La section OrganizationRoles est similaire à la section rôles utilisateur, sauf que c'est là que les rôles des nouvelles organisations sont définis. Une différence concerne l'attribut registrationType de l'élément Organization. Il est défini comme suit :

  • registrationType - Le type d'inscription auquel cela s'applique. Les valeurs admises dans la section OrganizationRoles sont les suivantes :
    • OrganizationRegistration - Une organisation s'inscrit sans spécifier le registrationType dans les requestProperties de la commande, par exemple, OrgEntityAddCmd
    • ResellerRegistration - Une organisation s'inscrit dans le cadre de la commande ResellerRegistrationAddCmd
    • BuyerRegistration - Une organisation s'inscrit dans le cadre de la commande BuyerRegistrationAddCmd

Autre différence : l'élément Role exige uniquement que l'attribut name soit défini.

Exemple pour OrganizationRoles :

<OrganizationRoles>
<Organization registrationType="ResellerRegistration"
          memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="o=Root Organization">
        <Role name="Seller"/>
        <Role name="Category Manager"/>
        <Role name="Logistics Manager"/>
        <Role name="Marketing Manager"/>
        <Role name="Sales Manager"/>
        <Role name="Seller Administrator"/>
        <Role name="Registered Customer"/>
</Organization>
</OrganizationRoles>

Cet exemple montre que si une organisation qui correspond aux critères externes (registrationType, memberAncestor et storeAncestor) est créée, tous les rôles répertoriés sont créés pour cette organisation.

BusinessEntities

La section BusinessEntities suit la même structure que la section OrganizationRoles et est utilisée pour répertorier les organisations qui agissent en tant qu'entités commerciales dans le système. Les entités commerciales sont des entités organisationnelles qui peuvent avoir des comptes professionnels.

Exemple pour les entités commerciales :

<BusinessEntities>
        <Organization registrationType=""
                memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="o=Root Organization"/>
</BusinessEntities>

Lorsque vous créez une organisation, l'instruction de tâche SetBusinessEntityCmd marque l'organisation en tant qu'entité commerciale si elle satisfait aux critères spécifiés dans la section BusinessEntities. L'exemple spécifie que toute organisation créée dans Organisation fournisseur doit être marquée en tant qu'entité commerciale.

Remarque : La section BusinessEntities ne définit pas les rôles.

RegistrationParents

La dernière section est la section RegistrationParents. C'est là que HCL Commerce définit l'organisation mère des nouveaux utilisateurs et des nouvelles organisations. Bien que bon nombre des commandes HCL Commerce permettent toujours l'affectation programmatique du parent, certains modèles commerciaux exigent que le parent soit corrigé. Si c'est le cas, HCL Commerce corrige les parents dans ce fichier.

Exemple pour RegistrationParents :

<RegistrationParents>
        <Organization registrationType="ResellerRegistration"
                memberAncestor="o=Supplier Organization,o=RootOrganization"
                storeAncestor="ou=Supplier HubOrganization,o=Supply Chain Management Organization,o=Root Organization"/>
</RegistrationParents>