IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Affichage en fonction des droits


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 84
    Par défaut Affichage en fonction des droits
    Bonjour,

    J'ai un problème de test/d'affichage avec mon fichier xslt.

    J'ai un paramètre que je passe ($DroitUtilisateur) qui est une concaténation du nom de l'utilisateur courant ainsi que tous les groupes auquels il appartient.
    Exemple : Utilisateur1|Groupe1|Groupe2

    Je dois afficher les documents que l'utilisateur à droit de voir.
    C'est à dire que son nom ou un de ses groupes doit est présent dans les permissions et que l'accès soit supérieur à 0!

    Voila le fichier XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <Documents>
      <Document ID="003676512">
        <Permissions>
          <PermissionBase Type="17">
            <Label>Groupe 1</Label>
            <Access>3</Access>
          </PermissionBase>
        </Permissions>
      </Document>
      <Document ID="003676479">
        <Permissions>
          <PermissionBase Type="17">
            <Label>Groupe 3</Label>
            <Access>3</Access>
          </PermissionBase>
          <PermissionBase Type="18">
            <Label>Utilisateur 1</Label>
            <Access>0</Access>
          </PermissionBase>
          <PermissionBase Type="18">
            <Label>Utilisateur 2</Label>
            <Access>2</Access>
          </PermissionBase>
        </Permissions>
      </Document>
    </Documents>
    Et mon fichier XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <ul class="explorerDocument">
      <xsl:for-each select="/Documents/Document">
        <xsl:if test="contains($DroitUtilisateur, ./Permissions/PermissionBase/Label) and (./Permissions/PermissionBase/Access > 0)">
          <li>
            <xsl:value-of select="./@ID"/>
          </li>
        </xsl:if>
      </xsl:for-each >
    </ul>
    Dans l'exemple, on devrait afficher juste le premier document car le Groupe 1 à un niveau d'accès à 3!
    Le deuxième document ne doit pas être affiché!

    Merci d'avance

    Cordialement,
    Julien

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    C'est presque ça.

    Actuellement dans ton XSL tu dis "J'affiche l'ID du document si :
    • il existe un PermissionBase/Label contenu dans la variable $DroitUtilisateur pour le document actuel
    • et qu'il existe un PermissionBase/Access > 0 pour le document actuel"


    Or ce que tu veux toi est légèrement différent : "J'affiche l'ID du document si :
    • il existe un PermissionBase/Label contenu dans la variable $DroitUtilisateur pour le document actuel
    • et que le Access correspondant à ce PermissionBase est > 0"


    En XSL ça se traduit par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contains($DroitUtilisateur, ./Permissions/PermissionBase/Label) and (./Permissions/PermissionBase[contains($DroitUtilisateur, Label)]/Access > 0)
    Ou, plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./Permissions/PermissionBase[contains($DroitUtilisateur, Label)]/Access > 0
    vu que la condition englobe les 2 tests.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 84
    Par défaut
    Merci, pour la solution et ta rapidité!!!!

    Ca fonctionne nikel...
    Je marque comme résolu

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer menu en fonction des droits des utilisateurs
    Par BILANGA dans le forum Langage
    Réponses: 9
    Dernier message: 15/09/2009, 19h25
  2. problèmes d'affichage en fonction des navigateurs
    Par radical_ed dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 14/02/2009, 13h07
  3. affichage en fonction des actions
    Par torn33260 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/09/2008, 15h52
  4. comment lister les fichiers en fonction des droits ?
    Par Ekimasu dans le forum Administration système
    Réponses: 7
    Dernier message: 19/04/2008, 17h12
  5. Réponses: 2
    Dernier message: 12/11/2006, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo