Documentation SDX-2 Télécharger Installer Présentation Configuration Indexation Recherche OAI Javadoc Référence API-XSP Pages XSP Paramètres SDX Vue d'ensemble Structure Paramètres et flux Identification Droits Localisation Pipelines Thesaurus Indexation Recherche Documents Liste alphabétique Migration Schemas Performances | # Gestion des droits Liste des actions décrites dans cette page : `sdx:userIsAdmin` ; `sdx:userIsMember` ; `sdx:userIsSu` ; `sdx:userIsAdminOrSu`. ## Concepts clés La section "Identification" présente les actions SDX utilisées pour identifier un utilisateur. Les outils SDX décrits ici permettent d'identifier plusieurs profils d'utilisateurs au sein d'applications. Liste des profils définis dans SDX Utilisateur anonyme C'est l'utilisateur par défaut, qu'une action d'identification n'ait pas eu lieu ou qu'elle n'ait pas été menée avec succès. Lors d'une déconnexion (cf. `sdx:logout`), l'utilisateur courant devient automatiquement un utilisateur anonyme. Utilisateur connu SDX permet de donner un certain nombre d'informations sur un utilisateur (voir l'application d'administration sur serveur de SDX `{serveur sdx}/sdx/admin/`) : un identifiant (`id`), un nom (`lastname`), un prénom (`firstname`), une adresse électronique (`email`), un mot de passe, un ou des groupes (`group`) décrits ci-après. Utilisateur membre d'un groupe SDX permet de créer des groupes d'utilisateurs. Par défaut, il existe au moins un groupe d'administrateurs regroupant au moins un administrateur d'application (élément `<sdx:admin groupId="admins" userId="admin" userPassword=""/>` dans le fichier `application.xconf`). Un utilisateur connu peut ainsi être défini comme membre du groupe des administrateurs. Il est possible de définir autant de groupes que de types d'accès à une application (par exemple, dans un ordre de responsabilité croissant, "`lecteur inexpérimenté`" ; "`lecteur expérimenté`" ; "`rédacteur de documents`" ; etc.). Ce système est très commode afin de prévoir des stratégies d'actions (par exemple, choix d'un affichage de documents suivant l'appartenance à un groupe ou un autre). Administrateur L'administrateur est désigné pour... administrer une application ! C'est logiquement la plus haute autorité dans le contexte d'une application. C'est à lui que revient l'alimentation des bases (les bases de documents comme la base des utilisateurs). Super-utilisateur Le super-utilisateur est au plus niveau de responsabilité puisqu'il administre directement le serveur SDX hébergeant les applications. Logiquement, il n'administre pas les applications elles-mêmes, mais on peut comprendre qu'il soit confondu avec l'administrateur décrit plus haut. ## `sdx:userIsAdmin`(CHECK) `sdx:userIsAdmin` permet d'identifier l'administrateur d'une application. L'action admettant certains paramètres communs de localisation, cela signifie que l'on peut identifier l'administrateur d'une application A au sein d'une application B.
Code implémentant cette action | `sdx-actions.xsl`
Contexte d'utilisation | N'importe où dans un `sdx:page`.
Contenu éventuel | N'importe quel élément `sdx:*` ou autre. Ces éléments seront traités si l'identification réussit, et dans ce cas le sous-élément `sdx:fallback` ne sera pas exécuté. Si l'identification échoue, seul l'élément `sdx:fallback` sera exécuté.
Tableau 1. Paramètres communs
Nom | Description | Elément correspondant |
--- | --- | --- | ---
`app` | L'identifiant de l'application. Par défaut, il s'agit de l'application courante. | `sdx:app` | Facultatif (FIXME)
`appbypath` | Indique la partie de l'URL qui suit "`sdx/`" dans une installation standard, par exemple "`sdxtest`". | `sdx:app` | Facultatif
Exemple 1. Identification de l'administrateur Dans l'exemple suivant, la page XSP génère l'action d'indexation si l'utilisateur courant est identifié comme administrateur de l'application A. Si l'identification échoue, elle génère l'action de connexion.
    <sdx:page>
     <sdx:userIsAdmin app="A">
      <sdx:uploadDocument/>
      <sdx:fallback>
       <sdx:login/>
      </sdx:fallback>
    </sdx:page>
## `sdx:userIsMember` `sdx:userIsMember` permet de tester l'appartenance à un ou plusieurs groupes d'utilisateurs.
Code implémentant cette action | `sdx-actions.xsl`
Contexte d'utilisation | N'importe où dans un `sdx:page`.
Contenu éventuel | N'importe quel élément `sdx:*` ou autre. Ces éléments seront traités si l'identification réussit, et dans ce cas le sous-élément `sdx:fallback` ne sera pas exécuté. Si l'identification échoue, seul l'élément `sdx:fallback` sera exécuté.
Tableau 2. Paramètres spécifiques
Nom | Description |
--- | --- | ---
`group` | Identifiant du groupe d'utilisateur. | Obligatoire
`op` | Opérateur booléen. Ceci permet de construire un test d'identification plus complexe. Par défaut, SDX emploie une `ou` logique. | Facultatif
Tableau 3. Paramètres communs
Nom | Description | Elément correspondant |
--- | --- | --- | ---
`app` | L'identifiant de l'application. | `sdx:app` | Facultatif
`appbypath` | Indique la partie de l'URL qui suit "`sdx/`" dans une installation standard, par exemple "`sdxtest`". | `sdx:app` | Facultatif
Exemple 2. Palette d'actions en fonction de l'appartenance Dans l'exemple suivant, on teste l'utilisateur selon son groupe d'appartenance. S'il est lecteur, rédacteur ou administrateur, il a accès à l'action d'exécution de la requête simple. Si, en plus, il est administrateur ou rédacteur, il peut indexer des documents. Enfin, s'il est administrateur, il a accès, en plus des deux actions précédentes, de supprimer des documents. Si l'utilisateur n'appartient à aucun groupe, il n'a aucun accès ; un message le prévient de l'obligation d'appartenir à un groupe.
    <sdx:page>

     <sdx:userIsMember op="or">
      <sdx:parameter name="group" value="admin" />
      <sdx:parameter name="group" value="redacteurs" />
      <sdx:parameter name="group" value="lecteurs" />
      <sdx:executeSimpleQuery/>

      <sdx:userIsMember op="or">
       <sdx:parameter name="group" value="redacteurs" />

       <sdx:uploadDocuments/>

       <sdx:userIsMember group="admin">
        <sdx:deleteDocuments/>
       </sdx:userIsMember>

      </sdx:userIsMember

      <sdx:fallback>
       <message type="groupe_obligatoire"/>
      </sdx:fallback>

     </sdx:userIsMember>

    </sdx:page>
## `sdx:userIsSu` `sdx:userIsSu` permet d'identifier le super-utilisateur ; c'est-à-dire l'administrateur du serveur SDX hébergeant les applications.
Code implémentant cette action | `sdx-actions.xsl`
Contexte d'utilisation | N'importe où dans un `sdx:page`.
Contenu éventuel | N'importe quel élément `sdx:*` ou autre. Ces éléments seront traités si l'identification réussit, et dans ce cas le sous-élément `sdx:fallback` ne sera pas exécuté. Si l'identification échoue, seul l'élément `sdx:fallback` sera exécuté.
Le super-utilisateur n'ayant aucun lien avec une application (il est administrateur du serveur SDX hébergeant les applications), l'action qui permet de l'identifier ne possède pas les paramètres communs d'identification d'une application comme les autres actions de cette section. ## `sdx:userIsAdminOrSu` `sdx:userIsAdminOrSu` permet d'identifier un administrateur que ce soit celui d'une application ou du serveur SDX.
Code implémentant cette action | `sdx-actions.xsl`
Contexte d'utilisation | N'importe où dans un `sdx:page`.
Contenu éventuel | N'importe quel élément `sdx:*` ou autre. Ces éléments seront traités si l'identification réussit, et dans ce cas le sous-élément `sdx:fallback` ne sera pas exécuté. Si l'identification échoue, seul l'élément `sdx:fallback` sera exécuté.
Tableau 4. Paramètres spécifiques
Nom | Description | Elément correspondant |
--- | --- | --- | ---
`app` | L'identifiant de l'application. | `sdx:app` | Facultatif
`appbypath` | Indique la partie de l'URL qui suit "`sdx/`" dans une installation standard, par exemple "`sdxtest`". | `sdx:app` | Facultatif
| Auteur : Malo Pichot (AJLSM) - 2003-11-26

| Home |
Copyright © 2000, 2001, 2002, 2003, 2004 Ministère de la culture et de la communication, AJLSM.