⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldap.js

📁 samba最新软件
💻 JS
📖 第 1 页 / 共 4 页
字号:
	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestuser4,cn=ldaptestcontainer," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}		ok = ldb.add("dn: CN=ldaptestuser4,CN=ldaptestcontainer," + base_dn + "objectClass: personobjectClass: usercn: LDAPtestUSER4");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	ok = ldb.modify("dn: cn=ldaptestgroup2,cn=users," + base_dn + "changetype: modifyadd: membermember: cn=ldaptestuser4,cn=ldaptestcontainer," + base_dn + "");	if (ok.error != 0) {		println("Failure adding ldaptestuser4 to a group");		println(ok.errstr);		assert(ok.error == 0);	}		println("Testing ldb.rename of cn=ldaptestcontainer," + base_dn + " to cn=ldaptestcontainer2," + base_dn);	ok = ldb.rename("CN=ldaptestcontainer," + base_dn, "CN=ldaptestcontainer2," + base_dn);	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	println("Testing ldb.search for (&(cn=ldaptestuser4)(objectClass=user))");	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))");	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser4)(objectClass=user))");		assert(res.error == 0);		assert(res.msgs.length == 1);	}	println("Testing subtree ldb.search for (&(cn=ldaptestuser4)(objectClass=user)) in (just renamed from) cn=ldaptestcontainer," + base_dn);	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))", "cn=ldaptestcontainer," + base_dn, ldb.SCOPE_SUBTREE);	if (res.error != 32) {		println(res.errstr);		assert(res.error == 32);	}	println("Testing one-level ldb.search for (&(cn=ldaptestuser4)(objectClass=user)) in (just renamed from) cn=ldaptestcontainer," + base_dn);	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))", "cn=ldaptestcontainer," + base_dn, ldb.SCOPE_ONELEVEL);	if (res.error != 32) {		println(res.errstr);		assert(res.error == 32);	}	println("Testing ldb.search for (&(cn=ldaptestuser4)(objectClass=user)) in renamed container");	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))", "cn=ldaptestcontainer2," + base_dn, ldb.SCOPE_SUBTREE);	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser4)(objectClass=user)) under cn=ldaptestcontainer2," + base_dn);		assert(res.error == 0);		assert(res.msgs.length == 1);	}	assert(res.msgs[0].dn == ("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn));	assert(strupper(res.msgs[0].memberOf[0]) == (strupper("CN=ldaptestgroup2,CN=Users," + base_dn)));	println("Testing ldb.search for (&(cn=ldaptestgroup2)(objectClass=group)) in cn=users");	var res_group = ldb.search("(&(cn=ldaptestgroup2)(objectClass=group))", "cn=users," + base_dn, ldb.SCOPE_SUBTREE);	if (res_group.error != 0 || res_group.msgs.length != 1) {		println("Could not find (&(cn=ldaptestgroup2)(objectClass=group)) under cn=users," + base_dn);		assert(res_group.error == 0);		assert(res_group.msgs.length == 1);	}	println("Testing ldb.search for (member=CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn + ") to check subtree renames and linked attributes");	var res = ldb.search("(member=CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn + ")", base_dn, ldb.SCOPE_SUBTREE);	if (res.error != 0 || res.msgs.length != 1) {		for (i=0; i < res_group.msgs[0].member.length; i++) {		    println("res_group.member[" +  i + "]: " + res_group.msgs[0].member[i]);		}		println("Could not find (member=CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn + "), perhaps linked attributes are not conistant with subtree renames?");		println("Testing ldb.search for (member=CN=ldaptestuser4,CN=ldaptestcontainer," + base_dn + ") to check if it just hasn't been updated");		var res2 = ldb.search("(member=CN=ldaptestuser4,CN=ldaptestcontainer," + base_dn + ")", base_dn, ldb.SCOPE_SUBTREE);		if (res2.error != 0 || res2.msgs.length != 1) {			println("Could not find (member=CN=ldaptestuser4,CN=ldaptestcontainer," + base_dn + "), very odd, it wasn't here at all..");		}		assert(res.error == 0);		assert(res.msgs.length == 1);	}	println("Testing ldb.rename (into itself) of cn=ldaptestcontainer2," + base_dn + " to cn=ldaptestcontainer,cn=ldaptestcontainer2," + base_dn);	ok = ldb.rename("cn=ldaptestcontainer2," + base_dn, "cn=ldaptestcontainer,cn=ldaptestcontainer2," + base_dn);	if (ok.error != 53) { /* LDAP_UNWILLING_TO_PERFORM */		println(ok.errstr);		assert(ok.error == 53);	}	println("Testing ldb.rename (into non-existent container) of cn=ldaptestcontainer2," + base_dn + " to cn=ldaptestcontainer,cn=ldaptestcontainer3," + base_dn);	ok = ldb.rename("cn=ldaptestcontainer2," + base_dn, "cn=ldaptestcontainer,cn=ldaptestcontainer3," + base_dn);	if (ok.error != 53 && ok.error != 80) { /* LDAP_UNWILLING_TO_PERFORM or LDAP_OTHER*/		println(ok.errstr);		assert(ok.error == 53 || ok.error == 80);	}	println("Testing delete (should fail, not a leaf node) of renamed cn=ldaptestcontainer2," + base_dn);	ok = ldb.del("cn=ldaptestcontainer2," + base_dn);	if (ok.error != 66) { /* LDB_ERR_NOT_ALLOWED_ON_NON_LEAF */		println(ok.errstr);		assert(ok.error == 66);	}	println("Testing base ldb.search for CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn);	var res = ldb.search("(objectclass=*)", ("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn), ldb.SCOPE_BASE);	if (res.error == 0 && res.count == 1) {		assert(res.error == 0 && res.count == 1);	}	var res = ldb.search("(cn=ldaptestuser40)", ("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn), ldb.SCOPE_BASE);	if (res.error == 0 && res.count == 0) {		assert(res.error == 0 && res.count == 0);	}	println("Testing one-level ldb.search for (&(cn=ldaptestuser4)(objectClass=user)) in cn=ldaptestcontainer2," + base_dn);	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))", "cn=ldaptestcontainer2," + base_dn, ldb.SCOPE_ONELEVEL);	if (res.error == 0 && res.count == 0) {		assert(res.error == 0 && res.count == 0);	}	println("Testing one-level ldb.search for (&(cn=ldaptestuser4)(objectClass=user)) in cn=ldaptestcontainer2," + base_dn);	var res = ldb.search("(&(cn=ldaptestuser4)(objectClass=user))", "cn=ldaptestcontainer2," + base_dn, ldb.SCOPE_SUBTREE);	if (res.error == 0 && res.count == 0) {		assert(res.error == 0 && res.count == 0);	}	println("Testing delete of subtree renamed "+("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn));	ok = ldb.del(("CN=ldaptestuser4,CN=ldaptestcontainer2," + base_dn));	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	println("Testing delete of renamed cn=ldaptestcontainer2," + base_dn);	ok = ldb.del("cn=ldaptestcontainer2," + base_dn);	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}		ok = ldb.add("dn: cn=ldaptestutf8user 猫霉茅矛貌脿 ,cn=users," + base_dn + "objectClass: user");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestutf8user 猫霉茅矛貌脿 ,cn=users," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	ok = ldb.add("dn: cn=ldaptestutf8user 猫霉茅矛貌脿 ,cn=users," + base_dn + "objectClass: user");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	ok = ldb.add("dn: cn=ldaptestutf8user2  猫霉茅矛貌脿 ,cn=users," + base_dn + "objectClass: user");	if (ok.error != 0) {		ok = ldb.del("cn=ldaptestutf8user2  猫霉茅矛貌脿 ,cn=users," + base_dn);		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	ok = ldb.add("dn: cn=ldaptestutf8user2  猫霉茅矛貌脿 ,cn=users," + base_dn + "objectClass: user");		if (ok.error != 0) {			println(ok.errstr);			assert(ok.error == 0);		}	}	println("Testing ldb.search for (&(cn=ldaptestuser)(objectClass=user))");	var res = ldb.search("(&(cn=ldaptestuser)(objectClass=user))");	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser)(objectClass=user))");		assert(res.error == 0);		assert(res.msgs.length == 1);	}	assert(res.msgs[0].dn == ("CN=ldaptestuser,CN=Users," + base_dn));	assert(res.msgs[0].cn == "ldaptestuser");	assert(res.msgs[0].name == "ldaptestuser");	assert(res.msgs[0].objectClass[0] == "top");	assert(res.msgs[0].objectClass[1] == "person");	assert(res.msgs[0].objectClass[2] == "organizationalPerson");	assert(res.msgs[0].objectClass[3] == "user");	assert(res.msgs[0].objectGUID != undefined);	assert(res.msgs[0].whenCreated != undefined);	assert(res.msgs[0].objectCategory == ("CN=Person,CN=Schema,CN=Configuration," + base_dn));	assert(res.msgs[0].sAMAccountType == 805306368);	assert(res.msgs[0].userAccountControl == 546);	assert(strupper(res.msgs[0].memberOf[0]) == strupper("CN=ldaptestgroup2,CN=Users," + base_dn));	assert(res.msgs[0].memberOf.length == 1); 	println("Testing ldb.search for (&(cn=ldaptestuser)(objectCategory=cn=person,cn=schema,cn=configuration," + base_dn + "))");	var res2 = ldb.search("(&(cn=ldaptestuser)(objectCategory=cn=person,cn=schema,cn=configuration," + base_dn + "))");	if (res2.error != 0 || res2.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser)(objectCategory=cn=person,cn=schema,cn=configuration," + base_dn + "))");		assert(res2.error == 0);		assert(res2.msgs.length == 1);	}	assert(res.msgs[0].dn == res2.msgs[0].dn);	println("Testing ldb.search for (&(cn=ldaptestuser)(objectCategory=PerSon))");	var res3 = ldb.search("(&(cn=ldaptestuser)(objectCategory=PerSon))");	if (res3.error != 0) {		println("Could not find (&(cn=ldaptestuser)(objectCategory=PerSon)): " + res3.errstr);		assert(res3.error == 0);	} else if (res3.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser)(objectCategory=PerSon)): matched " + res3.msgs.length);		assert(res3.msgs.length == 1);	}	assert(res.msgs[0].dn == res3.msgs[0].dn);	if (gc_ldb != undefined) {		println("Testing ldb.search for (&(cn=ldaptestuser)(objectCategory=PerSon)) in Global Catalog");		var res3gc = gc_ldb.search("(&(cn=ldaptestuser)(objectCategory=PerSon))");		if (res3gc.error != 0) {			println("Could not find (&(cn=ldaptestuser)(objectCategory=PerSon)) in Global Catalog: " + res3gc.errstr);			assert(res3gc.error == 0);		} else if (res3gc.msgs.length != 1) {			println("Could not find (&(cn=ldaptestuser)(objectCategory=PerSon)) in Global Catalog: matched " + res3gc.msgs.length);			assert(res3gc.msgs.length == 1);		}			assert(res.msgs[0].dn == res3gc.msgs[0].dn);	}	println("Testing ldb.search for (&(cn=ldaptestuser)(objectCategory=PerSon)) in with 'phantom root' control");	var attrs = new Array("cn");	var controls = new Array("search_options:1:2");	var res3control = gc_ldb.search("(&(cn=ldaptestuser)(objectCategory=PerSon))", base_dn, ldb.SCOPE_SUBTREE, attrs, controls);	if (res3control.error != 0 || res3control.msgs.length != 1) {		println("Could not find (&(cn=ldaptestuser)(objectCategory=PerSon)) in Global Catalog");		assert(res3control.error == 0);		assert(res3control.msgs.length == 1);	}		assert(res.msgs[0].dn == res3control.msgs[0].dn);	ok = ldb.del(res.msgs[0].dn);	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	println("Testing ldb.search for (&(cn=ldaptestcomputer)(objectClass=user))");	var res = ldb.search("(&(cn=ldaptestcomputer)(objectClass=user))");	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomputer)(objectClass=user))");		assert(res.error == 0);		assert(res.msgs.length == 1);	}	assert(res.msgs[0].dn == ("CN=ldaptestcomputer,CN=Computers," + base_dn));	assert(res.msgs[0].cn == "ldaptestcomputer");	assert(res.msgs[0].name == "ldaptestcomputer");	assert(res.msgs[0].objectClass[0] == "top");	assert(res.msgs[0].objectClass[1] == "person");	assert(res.msgs[0].objectClass[2] == "organizationalPerson");	assert(res.msgs[0].objectClass[3] == "user");	assert(res.msgs[0].objectClass[4] == "computer");	assert(res.msgs[0].objectGUID != undefined);	assert(res.msgs[0].whenCreated != undefined);	assert(res.msgs[0].objectCategory == "cn=Computer,cn=Schema,cn=Configuration," + base_dn);	assert(res.msgs[0].sAMAccountType == 805306368);	assert(res.msgs[0].userAccountControl == 546);	println("Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + "))");	var res2 = ldb.search("(&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + "))");	if (res2.error != 0 || res2.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + "))");		assert(res2.error == 0);		assert(res2.msgs.length == 1);	}	assert(res.msgs[0].dn == res2.msgs[0].dn);	if (gc_ldb != undefined) {		println("Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + ")) in Global Catlog");		var res2gc = gc_ldb.search("(&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + "))");		if (res2gc.error != 0 || res2gc.msgs.length != 1) {			println("Could not find (&(cn=ldaptestcomputer)(objectCategory=cn=computer,cn=schema,cn=configuration," + base_dn + ")) in Global Catlog");			assert(res2gc.error == 0);			assert(res2gc.msgs.length == 1);		}		assert(res.msgs[0].dn == res2gc.msgs[0].dn);	}	println("Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=compuTER))");	var res3 = ldb.search("(&(cn=ldaptestcomputer)(objectCategory=compuTER))");	if (res3.error != 0 || res3.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomputer)(objectCategory=compuTER))");		assert(res3.error == 0);		assert(res3.msgs.length == 1);	}	assert(res.msgs[0].dn == res3.msgs[0].dn);	if (gc_ldb != undefined) {		println("Testing ldb.search for (&(cn=ldaptestcomputer)(objectCategory=compuTER)) in Global Catalog");		var res3gc = gc_ldb.search("(&(cn=ldaptestcomputer)(objectCategory=compuTER))");		if (res3gc.error != 0 || res3gc.msgs.length != 1) {			println("Could not find (&(cn=ldaptestcomputer)(objectCategory=compuTER)) in Global Catalog");			assert(res3gc.error == 0);			assert(res3gc.msgs.length == 1);		}		assert(res.msgs[0].dn == res3gc.msgs[0].dn);	}	println("Testing ldb.search for (&(cn=ldaptestcomp*r)(objectCategory=compuTER))");	var res4 = ldb.search("(&(cn=ldaptestcomp*r)(objectCategory=compuTER))");	if (res4.error != 0 || res4.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomp*r)(objectCategory=compuTER))");		assert(res4.error == 0);		assert(res4.msgs.length == 1);	}	assert(res.msgs[0].dn == res4.msgs[0].dn);	println("Testing ldb.search for (&(cn=ldaptestcomput*)(objectCategory=compuTER))");	var res5 = ldb.search("(&(cn=ldaptestcomput*)(objectCategory=compuTER))");	if (res5.error != 0 || res5.msgs.length != 1) {		println("Could not find (&(cn=ldaptestcomput*)(objectCategory=compuTER))");		assert(res5.error == 0);		assert(res5.msgs.length == 1);	}	assert(res.msgs[0].dn == res5.msgs[0].dn);	println("Testing ldb.search for (&(cn=*daptestcomputer)(objectCategory=compuTER))");	var res6 = ldb.search("(&(cn=*daptestcomputer)(objectCategory=compuTER))");	if (res6.error != 0 || res6.msgs.length != 1) {		println("Could not find (&(cn=*daptestcomputer)(objectCategory=compuTER))");		assert(res6.error == 0);		assert(res6.msgs.length == 1);	}	assert(res.msgs[0].dn == res6.msgs[0].dn);	ok = ldb.del(res.msgs[0].dn);	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}	println("Testing ldb.search for (&(cn=ldaptest2computer)(objectClass=user))");	var res = ldb.search("(&(cn=ldaptest2computer)(objectClass=user))");	if (res.error != 0 || res.msgs.length != 1) {		println("Could not find (&(cn=ldaptest2computer)(objectClass=user))");		assert(res.error == 0);		assert(res.msgs.length == 1);	}	assert(res.msgs[0].dn == ("CN=ldaptest2computer,CN=Computers," + base_dn));	assert(res.msgs[0].cn == "ldaptest2computer");	assert(res.msgs[0].name == "ldaptest2computer");	assert(res.msgs[0].objectClass[0] == "top");	assert(res.msgs[0].objectClass[1] == "person");	assert(res.msgs[0].objectClass[2] == "organizationalPerson");	assert(res.msgs[0].objectClass[3] == "user");	assert(res.msgs[0].objectClass[4] == "computer");	assert(res.msgs[0].objectGUID != undefined);	assert(res.msgs[0].whenCreated != undefined);	assert(res.msgs[0].objectCategory == "cn=Computer,cn=Schema,cn=Configuration," + base_dn);	assert(res.msgs[0].sAMAccountType == 805306369);	assert(res.msgs[0].userAccountControl == 4096);   	ok = ldb.del(res.msgs[0].dn);	if (ok.error != 0) {		println(ok.errstr);		assert(ok.error == 0);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -