svn commit: samba r26610 - in branches/SAMBA_4_0/source/setup: .
abartlet at samba.org
abartlet at samba.org
Thu Dec 27 04:18:54 GMT 2007
Author: abartlet
Date: 2007-12-27 04:18:54 +0000 (Thu, 27 Dec 2007)
New Revision: 26610
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26610
Log:
Write out a memberof.conf, to run the memberof plugin on all linked
attributes, as found in the schema.
Index 'cn', as otherwise exact match searches on this attribute always
fail (need to figure out what is so special about cn in OpenLDAP).
Andrew Bartlett
Modified:
branches/SAMBA_4_0/source/setup/provision-backend
branches/SAMBA_4_0/source/setup/slapd.conf
Changeset:
Modified: branches/SAMBA_4_0/source/setup/provision-backend
===================================================================
--- branches/SAMBA_4_0/source/setup/provision-backend 2007-12-27 04:17:28 UTC (rev 26609)
+++ branches/SAMBA_4_0/source/setup/provision-backend 2007-12-27 04:18:54 UTC (rev 26610)
@@ -141,6 +141,36 @@
} else {
slapd_command = "slapd -f " + subobj.LDAPDIR + "/slapd.conf -h " + subobj.LDAPI_URI;
}
+
+ var ldb = ldb_init();
+ ldb.filename = tmp_schema_ldb;
+
+ var connect_ok = ldb.connect(ldb.filename);
+ assert(connect_ok);
+ var attrs = new Array("linkID", "lDAPDisplayName");
+ 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 = "";
+ 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) {
+ memberof_config = memberof_config + "overlay memberof
+memberof-dangling error
+memberof-refint TRUE
+memberof-group-oc top
+memberof-member-ad " + res.msgs[i].lDAPDisplayName + "
+memberof-memberof-ad " + target + "
+
+";
+ }
+ }
+ ok = sys.file_save(subobj.LDAPDIR + "/memberof.conf", memberof_config);
+ if (!ok) {
+ message("failed to create file: " + f + "\n");
+ assert(ok);
+ }
+
}
var schema_command = "ad2oLschema --option=convert:target=" + options["ldap-backend-type"] + " -I " + lp.get("setup directory") + "/" + mapping + " -H tdb://" + tmp_schema_ldb + " -O " + subobj.LDAPDIR + "/" + backend_schema;
Modified: branches/SAMBA_4_0/source/setup/slapd.conf
===================================================================
--- branches/SAMBA_4_0/source/setup/slapd.conf 2007-12-27 04:17:28 UTC (rev 26609)
+++ branches/SAMBA_4_0/source/setup/slapd.conf 2007-12-27 04:18:54 UTC (rev 26610)
@@ -31,6 +31,7 @@
index objectCategory eq
index lDAPDisplayName eq
index subClassOf eq
+index cn eq
database hdb
suffix ${CONFIGDN}
@@ -44,6 +45,7 @@
index subClassOf eq
index dnsRoot eq
index nETBIOSName eq
+index cn eq
database hdb
suffix ${DOMAINDN}
@@ -65,9 +67,12 @@
index subClassOf eq
index dnsRoot eq
index nETBIOSName eq
+index cn eq
#syncprov is stable in OpenLDAP 2.3, and available in 2.2.
#We only need this for the contextCSN attribute anyway....
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
+
+include ${LDAPDIR}/memberof.conf
More information about the samba-cvs
mailing list