LSC 2.0.3 contains bug fixes that make it is possible to detect and process a ranged attribute returned by Active Directory . Here is a snippet of JavaScript designed to do this for the member attribute.
<string>
<![CDATA[js:
var attrName = "member" ;
var newDataset = new Array();
var rangeStart = null ;
var rangeEnd = null ;
var rangeSize = null ;
var arrayCounter = 0 ;
var tmpDataset =
srcBean.getDatasetValuesById(attrName).toArray() ;
if (tmpDataset.length > 0)
{
rangeStart = 0
rangeEnd = "*"
rangeSize = 0
}
else
{
var attrList =
srcBean.getDatasetsNames().toArray()
if (attrList != null)
{
if
(attrList.length > 0)
{
for (var i=0; i < attrList.length; i++ )
{
if (attrList[i].toString().contains(attrName + ";range"))
{
var startPos = null
var sepPos = null
startPos =
attrList[i].toString().indexOf(";range=") + 7
sepPos = attrList[i].toString().indexOf("-",
startPos)
rangeStart =
attrList[i].toString().substring(startPos, sepPos)
rangeEnd =
attrList[i].toString().substring(sepPos + 1)
rangeSize = Number(rangeEnd) -
Number(rangeStart)
break
}
}
}
}
}
if (rangeStart != null)
{
var tmpAttrName = "" ;
while (rangeStart != "*")
{
if (rangeStart
== "0" && rangeEnd != "*")
{
tmpAttrName = attrName + ";range=" + rangeStart.toString() + "-" +
rangeEnd.toString()
tmpDataset = srcBean.getDatasetValuesById(tmpAttrName).toArray()
}
else if
(rangeStart != "0")
{
tmpAttrName = "member;range=" + rangeStart.toString() + "-" +
rangeEnd.toString()
tmpDataset = srcLdap.attribute(srcBean.getMainIdentifier(),
tmpAttrName).toArray()
}
if (rangeEnd ==
"*")
{
rangeStart = "*"
}
if (tmpDataset
!= null)
{
if (tmpDataset.length > 0)
{
for (var i=0; i<tmpDataset.length; i++ )
{
// Add attribute value processing logic here;
// Be sure to explicitly type the array
elements to prevent conversion to an object array;
newDataset[arrayCounter++] =
String(tmpDataset[i])
}
if (rangeEnd != "*")
{
rangeStart = Number(rangeEnd) + 1
rangeEnd = Number(rangeStart) +
Number(rangeSize)
}
}
else
{
rangeEnd = "*"
}
}
else
{
rangeEnd = "*"
}
}
}
newDataset
]]>
</string>
-Jon C. Kidder
American Electric Power
Middleware Services
Email: [email protected]<mailto:[email protected]>
Phone: 614-716-4970
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

