[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-wpkg/sources/www/bin/ -> associer.xsl (source)

   1  <?xml version="1.0" encoding="iso-8859-1"?>
   2  <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
   3     <xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes" />
   4      <!-- Ajoute ou retire une application d'un profile si les droits de l'utilisateur le permettent et crée profiles.xml modifié.
   5              S'applique à profiles.xml 
   6              Est appelé par associer.sh
   7              
   8          ## $Id: associer.xsl 2538 2007-10-16 22:24:54Z jlebail $ ##
   9      -->
  10      <xsl:param name="debug">0</xsl:param>
  11      <xsl:param name="operation"></xsl:param>
  12      <xsl:param name="idPackage"></xsl:param>
  13      <xsl:param name="idProfile"></xsl:param>
  14      <xsl:param name="login"></xsl:param>
  15      
  16      <xsl:key name="ProfileFromId" match="/profiles/profile" use="@id" />
  17      
  18      <xsl:variable name="PROFILES" select="/profiles"/>
  19      <xsl:variable name="DROITS" select="document('/var/se3/unattended/install/wpkg/droits.xml')/droits"/>
  20      <xsl:variable name="dependParcs" select="key('ProfileFromId', $idProfile)/depends/@profile-id"/>
  21      <xsl:variable name="OperationAllowed">
  22          <xsl:choose>
  23              <xsl:when test="$login = ''" >
  24                  <xsl:text>0</xsl:text>
  25              </xsl:when>
  26              <xsl:when test="$DROITS/droit[(@user = $login) and ((@droit = 'admin') or (@droit = 'manage')) and ((@parc = '_TousLesPostes') or (@parc = $idProfile) or (@parc = $dependParcs))]" >
  27                  <xsl:text>1</xsl:text>
  28              </xsl:when>
  29              <xsl:otherwise>
  30                  <xsl:text>0</xsl:text>
  31              </xsl:otherwise>
  32          </xsl:choose>
  33      </xsl:variable>
  34      
  35      <xsl:template match="*">
  36          <!-- recopie le noeud -->
  37          <xsl:copy>
  38              <xsl:apply-templates select="@*" />
  39              <xsl:apply-templates select="comment()|processing-instruction()" />
  40              <xsl:apply-templates select="*"/>
  41          </xsl:copy>
  42      </xsl:template>
  43  
  44      <xsl:template match="@*">
  45          <!-- recopie les attributs -->
  46          <xsl:copy />
  47      </xsl:template>
  48  
  49      <xsl:template match="comment()|processing-instruction()">
  50          <xsl:copy />
  51      </xsl:template>
  52  
  53      <xsl:template match="/profiles/profile">
  54          <!-- recupère les packages associés depuis profiles.xml -->
  55          <xsl:variable name="profilId" select="@id"/>
  56          <xsl:variable name="packagesDeCeProfil" select="$PROFILES/profile[@id = $profilId]/package"/>
  57          <xsl:choose>
  58              <xsl:when test="@id = $idProfile" >
  59                  <xsl:copy>
  60                      <xsl:apply-templates select="@*" />
  61                      <xsl:apply-templates select="comment()|processing-instruction()" />
  62                      <!-- <xsl:comment><xsl:value-of select="concat('OperationAllowed=', $OperationAllowed, ', idProfile=', $idProfile, ', idPackage=', $idPackage, ', operation=', $operation, ', login=', $login)" /></xsl:comment> -->
  63                      <xsl:choose>
  64                          <xsl:when test="not($OperationAllowed = '1')" >
  65                              <xsl:comment><xsl:value-of select="concat('Erreur Associer OperationAllowed=', $OperationAllowed, ', idProfile=', $idProfile, ', idPackage=', $idPackage, ', operation=', $operation, ', login=', $login)" /></xsl:comment>
  66                              <xsl:apply-templates select="*" />
  67                          </xsl:when>
  68                          <xsl:otherwise>
  69                              <xsl:for-each select="*[not((name() = 'package') and (@package-id = $idPackage))]">
  70                                  <xsl:apply-templates select="." />
  71                              </xsl:for-each>
  72                              <xsl:if test="$operation = 'Associer'" >
  73                                  <xsl:element name = "package" >
  74                                      <xsl:attribute name="package-id" ><xsl:value-of select="$idPackage" /></xsl:attribute>
  75                                  </xsl:element >
  76                              </xsl:if>
  77                          </xsl:otherwise>
  78                      </xsl:choose>
  79                  </xsl:copy>
  80              </xsl:when>
  81              <xsl:otherwise>
  82                  <!-- recopie le profil sans changement -->
  83                  <xsl:copy>
  84                      <xsl:apply-templates select="@*" />
  85                      <xsl:apply-templates select="comment()|processing-instruction()" />
  86                      <xsl:apply-templates select="*"/>
  87                  </xsl:copy>
  88              </xsl:otherwise>
  89          </xsl:choose>
  90      </xsl:template>
  91  
  92  </xsl:stylesheet>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1