RE: [xsl] Querying an Active Directory memberOf Attribute

Subject: RE: [xsl] Querying an Active Directory memberOf Attribute
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 1 Aug 2006 09:36:05 +0100
I think you've made the mistake of imagining that contains(A,B) tests
whether the set A includes an item equal to B. If you read the spec, you'll
see that it actually tests whether the string A contains B as a substring.
To test the first condition, use A=B.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Cailo . [mailto:frenzal68@xxxxxxxxxxx] 
> Sent: 01 August 2006 07:48
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Querying an Active Directory memberOf Attribute
> 
> Hi all,
> 
> I am new to this and I am pulling my hair out. I am working 
> on a product called RightFax which has the ability to sync 
> users in from Active Directory using XSL. I am trying to 
> query the Active Directory memberOf attribute and depending 
> on whether the user is in a particular group, put them in the 
> respective group within RightFax. My problem is that because 
> memberOf is an array within AD, the query is only searching 
> the first 'string' of the array and hence not returning 
> correct results. What I would like to do is to either query 
> the entire array or join each string within the array to 
> create one long string, then query the string. Please see 
> below my script:
> 
> <xsl:template match="rf:attr[@name='memberOf']">
>   <attr name="GroupID">
>     <value>
>       <xsl:variable name="group" select="*" />
>       <xsl:choose>
>         <xsl:when 
> test="contains($group,'Group_1')">100663298</xsl:when>
>         <xsl:when 
> test="contains($group,'Group_2')">100663299</xsl:when>
>         <xsl:otherwise><xsl:value-of select="100663296" 
> /></xsl:otherwise>
>       </xsl:choose>
>     </value>
>   </attr>
> </xsl:template>
> 
> 
> I have done this previously with javascript and it worked 
> fine however I am unable to get this to work. Please see 
> below the javascript:
> 
> Dim strGroups
> If IsArray(varProp) Then
>     strGroups = (Join(varProp))
>        If (InStr(strGroups, "CN=Group_1") > 0 ) Then
>              objUser.IsUnprotected = 0
>              objUser.GroupID="Orlando"
>        End If
> End If
> 
> 
> Any help would be greatly appreciated.
> 
> Thanks in advance
> 
> Cails

Current Thread