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:
Et mon fichier XSLT :
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>
Dans l'exemple, on devrait afficher juste le premier document car le Groupe 1 à un niveau d'accès à 3!
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>
Le deuxième document ne doit pas être affiché!
Merci d'avance
Cordialement,
Julien
Partager