X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=source4%2Fscripting%2Flibjs%2Fprovision.js;h=266bac1a75d70909b944587f7d751fa047d10e7d;hp=ef43ed721d46ec1ee8584c648bf4bb03d6e91af1;hb=48c2d871ea4864fcce47fc5e1fab926ce81de854;hpb=7c721a1f49d576e0a47c35e465206ade1c05d5a9 diff --git a/source4/scripting/libjs/provision.js b/source4/scripting/libjs/provision.js index ef43ed721d4..266bac1a75d 100644 --- a/source4/scripting/libjs/provision.js +++ b/source4/scripting/libjs/provision.js @@ -162,6 +162,7 @@ function ldb_erase(info, ldb) /* delete the specials */ ldb.del("@INDEXLIST"); ldb.del("@ATTRIBUTES"); + ldb.del("@OPTIONS"); ldb.del("@MODULES"); ldb.del("@PARTITION"); ldb.del("@KLUDGEACL"); @@ -169,7 +170,7 @@ function ldb_erase(info, ldb) /* and the rest */ attrs = new Array("dn"); var basedn = ""; - var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs); + var res = ldb.search("(&(|(objectclass=*)(distinguishedName=*))(!(distinguishedName=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs); var i; if (res.error != 0) { ldb_delete(info, ldb); @@ -179,7 +180,7 @@ function ldb_erase(info, ldb) ldb.del(res.msgs[i].dn); } - var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs); + var res = ldb.search("(&(|(objectclass=*)(distinguishedName=*))(!(distinguishedName=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs); if (res.error != 0 || res.msgs.length != 0) { ldb_delete(info, ldb); return; @@ -197,14 +198,17 @@ function ldb_erase_partitions(info, ldb, ldapbackend) var j; var res = ldb.search("(objectClass=*)", "", ldb.SCOPE_BASE, rootDSE_attrs); - assert(res.error == 0); + if (res.error != 0) { + info.message("rootdse search failed: " + res.errstr + "\n"); + assert(res.error == 0); + } assert(res.msgs.length == 1); if (typeof(res.msgs[0].namingContexts) == "undefined") { return; } for (j=0; j cn=rootdse - // - samldb must be before password_hash, because password_hash checks - // that the objectclass is of type person (filled in by samldb) + // - objectclass must be before password_hash, because password_hash checks + // that the objectclass is of type person (filled in by the objectclass + // module when expanding the objectclass list) // - partition must be last // - each partition has its own module list then - modules_list = new Array("rootdse", - "kludge_acl", - "paged_results", - "server_sort", - "extended_dn", - "asq", - "samldb", - "operational", - "objectclass", - "rdn_name", - "subtree_rename", - "linked_attributes", - "show_deleted", - "partition"); + var modules_list = new Array("rootdse", + "paged_results", + "ranged_results", + "anr", + "server_sort", + "extended_dn", + "asq", + "samldb", + "rdn_name", + "objectclass", + "kludge_acl", + "operational"); + var tdb_modules_list = new Array("subtree_rename", + "subtree_delete", + "linked_attributes"); + var modules_list2 = new Array("show_deleted", + "partition"); subobj.MODULES_LIST = join(",", modules_list); + subobj.TDB_MODULES_LIST = "," + join(",", tdb_modules_list); + subobj.MODULES_LIST2 = join(",", modules_list2); subobj.DOMAINDN_LDB = "users.ldb"; subobj.CONFIGDN_LDB = "configuration.ldb"; subobj.SCHEMADN_LDB = "schema.ldb"; @@ -1062,7 +1127,6 @@ function newuser(username, unixname, password, message, session_info, credential var ldif = sprintf(" dn: %s sAMAccountName: %s -memberOf: %s unixName: %s sambaPassword: %s objectClass: user