Author: metze
Date: 2007-01-24 12:23:42 +0000 (Wed, 24 Jan 2007)
New Revision: 20999

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

Log:
- update the list of attributes for classSchema and atttributeSchema objects
- use ${SCHEMADN} instead of CN=Schema,CN=Configuration,${BASEDN}
- do not include autogenerated values: instanceType, cn and name in the ldif 
output
- take care of the systemOnly attribute and a resulting NO-USER-MODIFICATION

metze
Modified:
   branches/SAMBA_4_0/testprogs/ejs/minschema.js


Changeset:
Modified: branches/SAMBA_4_0/testprogs/ejs/minschema.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/minschema.js       2007-01-24 11:26:22 UTC 
(rev 20998)
+++ branches/SAMBA_4_0/testprogs/ejs/minschema.js       2007-01-24 12:23:42 UTC 
(rev 20999)
@@ -40,23 +40,70 @@
 objectclasses_expanded = new Object();
 
 /* the attributes we need for objectclasses */
-class_attrs = new Array("objectClass", 
-                       "auxiliaryClass", "systemAuxiliaryClass",
-                       "possSuperiors", "systemPossSuperiors",
-                       "lDAPDisplayName", "governsID",
-                       "rDNAttID", "mustContain", "systemMustContain",
-                       "mayContain", "systemMayContain",
-                       "objectClassCategory", "subClassOf", 
-                       "defaultObjectCategory", "defaultHidingValue", 
-                       "systemFlags", "systemOnly", 
"defaultSecurityDescriptor",
-                       "objectCategory", "possibleInferiors", 
"displaySpecification",
-                       "schemaIDGUID");
+class_attrs = new Array("objectClass",
+                       "subClassOf",
+                       "governsID",
+                       "possSuperiors",
+                       "mayContain",
+                       "mustContain",
+                       "auxiliaryClass",
+                       "rDNAttID",
+                       "showInAdvancedViewOnly",
+                       "adminDisplayName",
+                       "adminDescription",
+                       "objectClassCategory",
+                       "lDAPDisplayName",
+                       "schemaIDGUID",
+                       "systemOnly",
+                       "systemPossSuperiors",
+                       "systemMayContain",
+                       "systemMustContain",
+                       "systemAuxiliaryClass",
+                       "defaultSecurityDescriptor",
+                       "systemFlags",
+                       "defaultHidingValue",
+                       "objectCategory",
+                       "defaultObjectCategory",
 
-attrib_attrs = new Array("objectClass", "lDAPDisplayName", 
-                        "isSingleValued", "linkID", "systemFlags", 
"systemOnly",
-                        "schemaIDGUID", "adminDisplayName", "attributeID",
-                        "attributeSyntax", "oMSyntax", "oMObjectClass");
+                       /* this attributes are not used by w2k3 */
+                       "schemaFlagsEx",
+                       "msDs-IntId",
+                       "msDs-Schema-Extensions",
+                       "classDisplayName",
+                       "isDefunct");
 
+
+attrib_attrs = new Array("objectClass",
+                        "attributeID",
+                        "attributeSyntax",
+                        "isSingleValued",
+                        "rangeLower",
+                        "rangeUpper",
+                        "mAPIID",
+                        "linkID",
+                        "showInAdvancedViewOnly",
+                        "adminDisplayName",
+                        "oMObjectClass",
+                        "adminDescription",
+                        "oMSyntax",
+                        "searchFlags",
+                        "extendedCharsAllowed",
+                        "lDAPDisplayName",
+                        "schemaIDGUID",
+                        "attributeSecurityGUID",
+                        "systemOnly",
+                        "systemFlags",
+                        "isMemberOfPartialAttributeSet",
+                        "objectCategory",
+
+                        /* this attributes are not used by w2k3 */
+                        "schemaFlagsEx",
+                        "msDs-IntId",
+                        "msDs-Schema-Extensions",
+                        "classDisplayName",
+                        "isEphemeral",
+                        "isDefunct");
+
 /*
   notes:
 
@@ -144,14 +191,14 @@
 
 
 /*
-  fix a string DN to use ${BASEDN}
+  fix a string DN to use ${SCHEMADN}
 */
 function fix_dn(dn) {
-       var s = strstr(dn, rootDse.defaultNamingContext);
+       var s = strstr(dn, rootDse.schemaNamingContext);
        if (s == NULL) {
                return dn;
        }
-       return substr(dn, 0, strlen(dn) - strlen(s)) + "${BASEDN}";
+       return substr(dn, 0, strlen(dn) - strlen(s)) + "${SCHEMADN}";
 }
 
 /*
@@ -159,9 +206,7 @@
 */
 function write_ldif_one(o, attrs) {
        var i;
-       printf("dn: CN=%s,CN=Schema,CN=Configuration,${BASEDN}\n", o.cn);
-       printf("cn: %s\n", o.cn);
-       printf("name: %s\n", o.cn);
+       printf("dn: CN=%s,${SCHEMADN}\n", o.cn);
        for (i=0;i<attrs.length;i++) {
                var a = attrs[i];
                if (o[a] == undefined) {
@@ -616,6 +661,10 @@
        if (attrib['isSingleValued'] == "TRUE") {
                printf("SINGLE-VALUE ");
        }
+       if (attrib['systemOnly'] == "TRUE") {
+               printf("NO-USER-MODIFICATION ");
+       }
+
        printf(")\n");
 }
 
@@ -624,13 +673,10 @@
   write the aggregate record
 */
 function write_aggregate() {
-       printf("dn: CN=Aggregate,CN=Schema,CN=Configuration,${BASEDN}\n");
+       printf("dn: CN=Aggregate,${SCHEMADN}\n");
        print("objectClass: top
 objectClass: subSchema
-cn: Aggregate
-instanceType: 4
-name: Aggregate
-objectCategory: CN=SubSchema,CN=Schema,CN=Configuration,${BASEDN}
+objectCategory: CN=SubSchema,${SCHEMADN}
 ");
        for (i in objectclasses) {
                write_aggregate_objectclass(objectclasses[i]);
@@ -679,7 +725,7 @@
        num_classes++;
 }
 /* so EJS do not have while nor the break statement
-   can't find any other way than doing more loops
+   cannot find any other way than doing more loops
    than necessary to recursively expand all classes
  */
 var inf;

Reply via email to