OpenLDAP backend: Place the refint overlay after the memberof overlay
[samba.git] / source / setup / provision-backend
index 66555c4e19f58e3fa40423d16223df264f815c67..6582587624006e48b8fa1b2cafc00cc2f4c5b089 100755 (executable)
@@ -151,10 +151,12 @@ if (options["ldap-backend-type"] == "fedora-ds") {
        var res = ldb.search("(&(&(linkID=*)(!(linkID:1.2.840.113556.1.4.803:=1)))(objectclass=attributeSchema))", subobj.SCHEMADN, ldb.SCOPE_SUBTREE, attrs);
        assert(res.error == 0);
        var memberof_config = "";
+       var refint_attributes = "";
        for (i=0; i < res.msgs.length; i++) {
 searchone(ldb, subobj.DOMAINDN, "(&(objectClass=computer)(cn=" + subobj.NETBIOSNAME + "))", "objectGUID");
                var target = searchone(ldb, subobj.SCHEMADN, "(&(objectclass=attributeSchema)(linkID=" + (res.msgs[i].linkID + 1) + "))", "lDAPDisplayName");
                if (target != undefined) {
+                       refint_attributes = refint_attributes + " " + target + " " + res.msgs[i].lDAPDisplayName;
                        memberof_config = memberof_config + "overlay memberof
 memberof-dangling error
 memberof-refint TRUE
@@ -166,6 +168,12 @@ memberof-dangling-error 32
 ";
                }
        }
+
+       memberof_config = memberof_config + "
+overlay refint
+refint_attributes" + refint_attributes + "
+";
+       
        ok = sys.file_save(subobj.LDAPDIR + "/memberof.conf", memberof_config);
        if (!ok) {
                message("failed to create file: " + f + "\n");