s4-dsdb: Improve the calculation of system flags according to 3.1.1.5.2.4
authorMatthieu Patou <mat@matws.net>
Mon, 25 Jul 2011 13:31:03 +0000 (17:31 +0400)
committerMatthieu Patou <mat@samba.org>
Tue, 26 Jul 2011 21:34:24 +0000 (23:34 +0200)
source4/dsdb/samdb/ldb_modules/objectclass.c

index 7ae90d353a3ce80fce62250a02249a7dac269da2..ab1766f856e4347bbec5a6bb941e8d23358d21f9 100644 (file)
@@ -734,14 +734,15 @@ static int objectclass_do_add(struct oc_context *ac)
                } else if (ldb_attr_cmp(objectclass->lDAPDisplayName, "site") == 0
                                || ldb_attr_cmp(objectclass->lDAPDisplayName, "serversContainer") == 0
                                || ldb_attr_cmp(objectclass->lDAPDisplayName, "nTDSDSA") == 0) {
+                       if (ldb_attr_cmp(objectclass->lDAPDisplayName, "site") == 0)
+                               systemFlags |= (int32_t)(SYSTEM_FLAG_CONFIG_ALLOW_RENAME);
                        systemFlags |= (int32_t)(SYSTEM_FLAG_DISALLOW_MOVE_ON_DELETE);
-
                } else if (ldb_attr_cmp(objectclass->lDAPDisplayName, "siteLink") == 0
+                               || ldb_attr_cmp(objectclass->lDAPDisplayName, "subnet") == 0
                                || ldb_attr_cmp(objectclass->lDAPDisplayName, "siteLinkBridge") == 0
                                || ldb_attr_cmp(objectclass->lDAPDisplayName, "nTDSConnection") == 0) {
                        systemFlags |= (int32_t)(SYSTEM_FLAG_CONFIG_ALLOW_RENAME);
                }
-
                /* TODO: If parent object is site or subnet, also add (SYSTEM_FLAG_CONFIG_ALLOW_RENAME) */
 
                if (el || systemFlags != 0) {