On Thursday 20 August 2015 12:30:35 Gallavardin Antoine wrote:
> I'm trying to sync OpenLDAP group to AD
> I follow the page
> http://lsc-project.org/wiki/documentation/tutorial/synchronizegroups I
> manage to fetch the DN of user to inject in AD Group
> but I get the following error :
> 
> ----8<----8<----8<----8<----8<----8<----8<----8<----8<
> dn: CN=app-printer-admin,OU=Groups,OU=Lyon,DC=irstea,DC=priv
> changetype: modify
> replace: member
> member: [object Array]
> ----8<----8<----8<----8<----8<----8<----8<----8<----8<
> It seems that lsc didn't accept an array in the dataset
> any idea ?
> 
> 
> 
> Antoine  Gallavardin
> IT guy @ IRSTEA
> 
> 
> PS : This my jvascript
> 
> function members() {
>  var memberUidArray = srcBean.getAttributeValuesById("memberUid").toArray();
> var memberDNs=[];
>  var destMembersDn="";
>  var fetchCn;
>  for  (var i=0; i<memberUidArray.length ; i++){
>  try {
>      var filter = "(&(uid=" + memberUidArray[i] +
> ")(!(objectClass=gosaUserTemplate))(supannListeRouge=FALSE)(mail=*))";
> fetchCn = srcLdap.attribute(srcLdap.search("ou=people", filter ).get(0),
> "cn" ).get(0); destMembersDn =
> "CN="+fetchCn+",OU=People,OU=Lyon,DC=irstea,DC=priv";
> //java.lang.System.out.println("DESTDN : " + destMembersDn ); }
>  catch (e) {
>      continue;
>      }
> 
>  memberDNs.push(destMembersDn);
>  } Also;
> return memberDNs
> }

Here is my lsc.xml code for groups. It works with LSC 2.1 :

        <dataset>
                <name>member</name>
                <policy>FORCE</policy>
                <forceValues><string><![CDATA[js:
                var memberUids = 
srcBean.getDatasetValuesById("memberUid").toArray() ;
                var members = new Array();
                var dn;
                for (var i=0; i<memberUids.length; i++ ) { 
                        try { 
                                // '' + pour forcer un "cast" du retour de 
ldap.list en String ... Sinon, on a un 
"sun.org.mozilla.javascript.internal.NativeJavaObject"
                                dn = '' + ldap.list("ou=People", 
"(sAMAccountName=" + memberUids[i] + ")" ).get(0) + ',dc=ad,dc=unilim,dc=fr';
                                if (dn) { members.push(dn); }
                        } catch (e) { ; } 
                } 
                members
                ]]></string></forceValues>
        </dataset>

Did you try ending your code without the "return" keyword ? It is the only 
difference I can notice (but I am not a JS expert...).

-- 
Xavier Montagutelli
Responsable Service Infrastructure
Direction du Système d'Information - Pôle Ressources
Université de Limoges
123, avenue Albert Thomas - 87060 Limoges cedex
Tel : 05 87 08 08 30 (interne : 3830)
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to