Start generating a configuration for the refint overlay. This
authorAndrew Bartlett <abartlet@samba.org>
Tue, 15 Jan 2008 22:26:14 +0000 (09:26 +1100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 15 Jan 2008 22:26:14 +0000 (09:26 +1100)
OpenLDAP module should ensure that after a subtree rename, attributes
are still consistant.

Andrew Bartlett

source/selftest/env/Samba4.pm
source/setup/provision-backend

index 61edeb388548d7601b3b186dce619b9f83489b20..b8fd66f0a059754052f8a683bdd7fa8cbd5df81d 100644 (file)
@@ -244,6 +244,7 @@ sub mk_openldap($$$)
 modulepath      $olroot/libexec/openldap
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
@@ -255,6 +256,7 @@ modulepath      $olroot/libexec/openldap
 moduleload     back_hdb
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
@@ -266,6 +268,7 @@ moduleload      memberof
 moduleload     back_hdb
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
@@ -278,6 +281,7 @@ modulepath  /usr/lib/ldap
 moduleload     back_hdb
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
@@ -289,6 +293,7 @@ moduleload      memberof
 modulepath     /usr/lib/openldap
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
@@ -300,6 +305,7 @@ moduleload      memberof
 modulepath     /usr/lib64/openldap
 moduleload     syncprov
 moduleload      memberof
+moduleload      refint
 ";
                close(CONF);
        }
index 66555c4e19f58e3fa40423d16223df264f815c67..ba9e67f22955bdf4a9c2fa157e7bdc846f8dc809 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,11 @@ memberof-dangling-error 32
 ";
                }
        }
+
+       memberof_config = "overlay refint
+refint_attributes" + refint_attributes + "
+" + memberof_config;
+       
        ok = sys.file_save(subobj.LDAPDIR + "/memberof.conf", memberof_config);
        if (!ok) {
                message("failed to create file: " + f + "\n");