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
[EMAIL PROTECTED]: 
rootdse,paged_results,server_sort,extended_dn,asq,samldb,objectclass,password_hash,operational,objectguid,rdn_name,samba3sam,partition
[EMAIL PROTECTED]: 
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");

Reply via email to