svn commit: samba r24262 - in branches/SAMBA_4_0: source/dsdb/samdb/ldb_modules source/setup testprogs/ejs

abartlet at samba.org abartlet at samba.org
Tue Aug 7 05:58:48 GMT 2007


Author: abartlet
Date: 2007-08-07 05:58:47 +0000 (Tue, 07 Aug 2007)
New Revision: 24262

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24262

Log:
Set the objectCategory by default in the objectclass module, rather than using templates.

Modify the samba3sam test to be less fussy, and not use the
objectclass module (which requires proper schema stuff now).

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c
   branches/SAMBA_4_0/source/setup/provision_templates.ldif
   branches/SAMBA_4_0/testprogs/ejs/samba3sam.js


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c	2007-08-07 04:29:42 UTC (rev 24261)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/objectclass.c	2007-08-07 05:58:47 UTC (rev 24262)
@@ -161,7 +161,7 @@
 				/* Save the next pointer, as the DLIST_ macros will change poss_subclass->next */
 				next = poss_subclass->next;
 
-				if (ldb_attr_cmp(class->subClassOf, current->objectclass) == 0) {
+				if (class && ldb_attr_cmp(class->subClassOf, current->objectclass) == 0) {
 					DLIST_REMOVE(unsorted, poss_subclass);
 					DLIST_ADD(subclass, poss_subclass);
 					
@@ -199,6 +199,7 @@
 static int objectclass_add(struct ldb_module *module, struct ldb_request *req)
 {
 	struct ldb_message_element *objectclass_element;
+	const struct dsdb_schema *schema = dsdb_get_schema(module->ldb);
 	struct class_list *sorted, *current;
 	struct ldb_request *down_req;
 	struct ldb_message *msg;
@@ -265,6 +266,14 @@
 			talloc_free(mem_ctx);
 			return ret;
 		}
+		/* Last one */
+		if (schema && !current->next && !ldb_msg_find_element(msg, "objectCategory")) {
+			const struct dsdb_class *objectclass
+				= dsdb_class_by_lDAPDisplayName(schema, current->objectclass);
+			if (objectclass) {
+				ldb_msg_add_string(msg, "objectCategory", objectclass->defaultObjectCategory);
+			}
+		}
 	}
 
 	talloc_free(mem_ctx);

Modified: branches/SAMBA_4_0/source/setup/provision_templates.ldif
===================================================================
--- branches/SAMBA_4_0/source/setup/provision_templates.ldif	2007-08-07 04:29:42 UTC (rev 24261)
+++ branches/SAMBA_4_0/source/setup/provision_templates.ldif	2007-08-07 05:58:47 UTC (rev 24262)
@@ -4,7 +4,6 @@
 description: Container for SAM account templates
 showInAdvancedViewOnly: TRUE
 systemFlags: 2348810240
-objectCategory: CN=Container,${SCHEMADN}
 isCriticalSystemObject: TRUE
 
 ###
@@ -30,7 +29,6 @@
 accountExpires: -1
 logonCount: 0
 sAMAccountType: 805306368
-objectCategory: CN=Person,${SCHEMADN}
 
 dn: CN=TemplateComputer,CN=Templates
 objectClass: top
@@ -50,7 +48,6 @@
 accountExpires: -1
 logonCount: 0
 sAMAccountType: 805306369
-objectCategory: CN=Computer,${SCHEMADN}
 
 dn: CN=TemplateTrustingDomain,CN=Templates
 objectClass: top
@@ -74,7 +71,6 @@
 objectClass: groupTemplate
 groupType: -2147483646
 sAMAccountType: 268435456
-objectCategory: CN=Group,${SCHEMADN}
 
 # Currently this isn't used, we don't have a way to detect it different from an incoming alias
 #
@@ -92,7 +88,6 @@
 objectClass: Template
 objectClass: foreignSecurityPrincipalTemplate
 showInAdvancedViewOnly: TRUE
-objectCategory: CN=Foreign-Security-Principal,${SCHEMADN}
 
 dn: CN=TemplateSecret,CN=Templates
 objectClass: top

Modified: branches/SAMBA_4_0/testprogs/ejs/samba3sam.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/samba3sam.js	2007-08-07 04:29:42 UTC (rev 24261)
+++ branches/SAMBA_4_0/testprogs/ejs/samba3sam.js	2007-08-07 05:58:47 UTC (rev 24262)
@@ -46,7 +46,7 @@
 @TO: sambaDomainName=TESTS," + s3.BASEDN + "
 
 dn: @MODULES
- at LIST: rootdse,paged_results,server_sort,extended_dn,asq,samldb,objectclass,password_hash,operational,objectguid,rdn_name,samba3sam,partition
+ at LIST: rootdse,paged_results,server_sort,extended_dn,asq,samldb,password_hash,operational,objectguid,rdn_name,samba3sam,partition
 
 dn: @PARTITION
 partition: " + s4.BASEDN + ":" + s4.url + "
@@ -482,7 +482,7 @@
 	assert(res.msgs[0].dnsHostName == "x");
 	assert(res.msgs[0].lastLogon == "x");
 	assert(res.msgs[0].objectClass != undefined);
-	assert(res.msgs[0].objectClass[3] == "user");
+	assert(res.msgs[0].objectClass[0] == "user"); 
 	assert(res.msgs[1].dn == s4.dn("cn=A"));
 	assert(res.msgs[1].dnsHostName == undefined);
 	assert(res.msgs[1].lastLogon == "x");
@@ -504,7 +504,7 @@
 	assert(res.msgs[1].dnsHostName == "x");
 	assert(res.msgs[1].lastLogon == "x");
 	assert(res.msgs[1].objectClass != undefined);
-	assert(res.msgs[1].objectClass[3] == "user");
+	assert(res.msgs[1].objectClass[0] == "user");
 	assert(res.msgs[2].dn == s4.dn("cn=A"));
 	assert(res.msgs[2].dnsHostName == undefined);
 	assert(res.msgs[2].lastLogon == "x");



More information about the samba-cvs mailing list