svn commit: samba r12598 - in branches/SAMBA_4_0/source: dsdb/samdb/ldb_modules setup

abartlet at samba.org abartlet at samba.org
Fri Dec 30 08:36:25 GMT 2005


Author: abartlet
Date: 2005-12-30 08:36:25 +0000 (Fri, 30 Dec 2005)
New Revision: 12598

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

Log:
Make the 'objectClass' part of the templating process actually work.
We need to add to the multivalued objectClass, not ignore it because
the user has already specified a value.

Also rename the template again.

This was caught by more stringent tests in the unicodePwd module, but
breaks MMC.  A later commit will sort the objectClass.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c
   branches/SAMBA_4_0/source/setup/provision_templates.ldif
   branches/SAMBA_4_0/source/setup/provision_users.ldif


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c	2005-12-30 06:49:36 UTC (rev 12597)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/samldb.c	2005-12-30 08:36:25 UTC (rev 12598)
@@ -305,23 +305,32 @@
 			continue;
 		}
 		for (j = 0; j < el->num_values; j++) {
-			if (strcasecmp(el->name, "objectClass") == 0 &&
-			    (strcasecmp((char *)el->values[j].data, "Template") == 0 ||
-			     strcasecmp((char *)el->values[j].data, "userTemplate") == 0 ||
-			     strcasecmp((char *)el->values[j].data, "groupTemplate") == 0 ||
-			     strcasecmp((char *)el->values[j].data, "foreignSecurityPrincipalTemplate") == 0 ||
-			     strcasecmp((char *)el->values[j].data, "aliasTemplate") == 0 || 
-			     strcasecmp((char *)el->values[j].data, "trustedDomainTemplate") == 0 || 
-			     strcasecmp((char *)el->values[j].data, "secretTemplate") == 0)) {
-				continue;
+			if (strcasecmp(el->name, "objectClass") == 0) {
+				if (strcasecmp((char *)el->values[j].data, "Template") == 0 ||
+				    strcasecmp((char *)el->values[j].data, "userTemplate") == 0 ||
+				    strcasecmp((char *)el->values[j].data, "groupTemplate") == 0 ||
+				    strcasecmp((char *)el->values[j].data, "foreignSecurityPrincipalTemplate") == 0 ||
+				    strcasecmp((char *)el->values[j].data, "aliasTemplate") == 0 || 
+				    strcasecmp((char *)el->values[j].data, "trustedDomainTemplate") == 0 || 
+				    strcasecmp((char *)el->values[j].data, "secretTemplate") == 0) {
+					continue;
+				}
+				if ( ! samldb_find_or_add_attribute(module, msg, el->name, 
+								    (char *)el->values[j].data,
+								    (char *)el->values[j].data)) {
+					ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Attribute adding failed...\n");
+					talloc_free(res);
+					return -1;
+				}
+			} else {
+				if ( ! samldb_find_or_add_attribute(module, msg, el->name, 
+								    NULL,
+								    (char *)el->values[j].data)) {
+					ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Attribute adding failed...\n");
+					talloc_free(res);
+					return -1;
+				}
 			}
-			if ( ! samldb_find_or_add_attribute(module, msg, el->name, 
-							    NULL,
-							    (char *)el->values[j].data)) {
-				ldb_debug(module->ldb, LDB_DEBUG_FATAL, "Attribute adding failed...\n");
-				talloc_free(res);
-				return -1;
-			}
 		}
 	}
 
@@ -407,7 +416,7 @@
 	}
 
 	if (samldb_find_attribute(msg, "objectclass", "computer") != NULL) {
-		if (samldb_copy_template(module, msg2, "(&(CN=TemplateServer)(objectclass=userTemplate))") != 0) {
+		if (samldb_copy_template(module, msg2, "(&(CN=TemplateComputer)(objectclass=userTemplate))") != 0) {
 			ldb_debug(module->ldb, LDB_DEBUG_WARNING, "samldb_fill_user_or_computer_object: Error copying computer template!\n");
 			return NULL;
 		}

Modified: branches/SAMBA_4_0/source/setup/provision_templates.ldif
===================================================================
--- branches/SAMBA_4_0/source/setup/provision_templates.ldif	2005-12-30 06:49:36 UTC (rev 12597)
+++ branches/SAMBA_4_0/source/setup/provision_templates.ldif	2005-12-30 08:36:25 UTC (rev 12598)
@@ -38,11 +38,13 @@
 sAMAccountType: 0x30000000
 objectCategory: CN=Person,CN=Schema,CN=Configuration,${BASEDN}
 
-dn: CN=TemplateServer,CN=Templates,${BASEDN}
+dn: CN=TemplateComputer,CN=Templates,${BASEDN}
 objectClass: top
+objectClass: person
+objectClass: organizationalPerson
 objectClass: Template
 objectClass: userTemplate
-cn: TemplateServer
+cn: TemplateComputer
 instanceType: 4
 userAccountControl: 0x1002
 badPwdCount: 0

Modified: branches/SAMBA_4_0/source/setup/provision_users.ldif
===================================================================
--- branches/SAMBA_4_0/source/setup/provision_users.ldif	2005-12-30 06:49:36 UTC (rev 12597)
+++ branches/SAMBA_4_0/source/setup/provision_users.ldif	2005-12-30 08:36:25 UTC (rev 12598)
@@ -1,7 +1,4 @@
 dn: CN=Administrator,CN=Users,${BASEDN}
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
 objectClass: user
 cn: Administrator
 description: Built-in account for administering the computer/domain
@@ -22,9 +19,6 @@
 unixName: ${ROOT}
 
 dn: CN=Guest,CN=Users,${BASEDN}
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
 objectClass: user
 cn: Guest
 description: Built-in account for guest access to the computer/domain
@@ -83,10 +77,6 @@
 
 
 dn: CN=${NETBIOSNAME},OU=Domain Controllers,${BASEDN}
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: user
 objectClass: computer
 cn: ${NETBIOSNAME}
 uSNCreated: 1



More information about the samba-cvs mailing list