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:
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:
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