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

📄 samba3sam.js

📁 samba最新软件
💻 JS
📖 第 1 页 / 共 3 页
字号:
	assert(res.msgs[0].dnsHostName == "z");	assert(res.msgs[0].lastLogon == "z");	assert(res.msgs[1].dn == s4.dn("cn=C"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "z");	/* Search by renamed attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(badPwdCount=x)", NULL, ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	/* Search by converted attribute */	attrs = new Array("dnsHostName", "lastLogon", "objectSid");	/* TODO:	   Using the SID directly in the parse tree leads to conversion	   errors, letting the search fail with no results.	res = ldb.search("(objectSid=S-1-5-21-4231626423-2410014848-2360679739-552)", NULL, ldb. SCOPE_DEFAULT, attrs);	*/	res = ldb.search("(objectSid=*)", NULL, ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 3);	assert(res.msgs[0].dn == s4.dn("cn=X"));	assert(res.msgs[0].dnsHostName == "x");	assert(res.msgs[0].lastLogon == "x");	assert(res.msgs[0].objectSid == "S-1-5-21-4231626423-2410014848-2360679739-552");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[1].objectSid == "S-1-5-21-4231626423-2410014848-2360679739-552");	/* Search by generated attribute */	/* In most cases, this even works when the mapping is missing	 * a `convert_operator' by enumerating the remote db. */	attrs = new Array("dnsHostName", "lastLogon", "primaryGroupID");	res = ldb.search("(primaryGroupID=512)", NULL, ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 1);	assert(res.msgs[0].dn == s4.dn("cn=A"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "x");	assert(res.msgs[0].primaryGroupID == "512");	/* TODO: There should actually be two results, A and X.  The	 * primaryGroupID of X seems to get corrupted somewhere, and the	 * objectSid isn't available during the generation of remote (!) data,	 * which can be observed with the following search.  Also note that Xs	 * objectSid seems to be fine in the previous search for objectSid... */	/*	res = ldb.search("(primaryGroupID=*)", NULL, ldb. SCOPE_DEFAULT, attrs);	println(res.msgs.length + " results found");	for (i=0;i<res.msgs.length;i++) {		for (obj in res.msgs[i]) {			println(obj + ": " + res.msgs[i][obj]);		}		println("---");	}	*/	/* Search by remote name of renamed attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(sambaBadPasswordCount=*)", "", ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	/* Search by objectClass */	attrs = new Array("dnsHostName", "lastLogon", "objectClass");	res = ldb.search("(objectClass=user)", NULL, ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=X"));	assert(res.msgs[0].dnsHostName == "x");	assert(res.msgs[0].lastLogon == "x");	assert(res.msgs[0].objectClass != undefined);	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");	assert(res.msgs[1].objectClass != undefined);	assert(res.msgs[1].objectClass[0] == "user");	/* Prove that the objectClass is actually used for the search */	res = ldb.search("(|(objectClass=user)(badPwdCount=x))", NULL, ldb. SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 3);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[0].objectClass != undefined);	for (i=0;i<res.msgs[0].objectClass.length;i++) {		assert(res.msgs[0].objectClass[i] != "user");	}	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[1].objectClass != undefined);	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");	assert(res.msgs[2].objectClass != undefined);	assert(res.msgs[2].objectClass[0] == "user");	println("Testing search by parse tree");	/* Search by conjunction of local attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(&(codePage=x)(revision=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	/* Search by conjunction of remote attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(&(lastLogon=x)(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=X"));	assert(res.msgs[0].dnsHostName == "x");	assert(res.msgs[0].lastLogon == "x");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");		/* Search by conjunction of local and remote attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(&(codePage=x)(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	/* Search by conjunction of local and remote attribute w/o match */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(&(codePage=x)(nextRid=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	res = ldb.search("(&(revision=x)(lastLogon=z))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	/* Search by disjunction of local attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(|(revision=x)(dnsHostName=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 2);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	/* Search by disjunction of remote attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(|(badPwdCount=x)(lastLogon=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 3);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=A"));	assert(res.msgs[2].dnsHostName == undefined);	assert(res.msgs[2].lastLogon == "x");	/* Search by disjunction of local and remote attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(|(revision=x)(lastLogon=y))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 3);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=B"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "y");	assert(res.msgs[2].dn == s4.dn("cn=X"));	assert(res.msgs[2].dnsHostName == "x");	assert(res.msgs[2].lastLogon == "x");	/* Search by disjunction of local and remote attribute w/o match */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(|(codePage=y)(nextRid=z))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	/* Search by negated local attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(revision=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 5);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=Z"));	assert(res.msgs[2].dnsHostName == "z");	assert(res.msgs[2].lastLogon == "z");	assert(res.msgs[3].dn == s4.dn("cn=C"));	assert(res.msgs[3].dnsHostName == undefined);	assert(res.msgs[3].lastLogon == "z");	/* Search by negated remote attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 3);	assert(res.msgs[0].dn == s4.dn("cn=Z"));	assert(res.msgs[0].dnsHostName == "z");	assert(res.msgs[0].lastLogon == "z");	assert(res.msgs[1].dn == s4.dn("cn=C"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "z");	/* Search by negated conjunction of local attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(&(codePage=x)(revision=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 5);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=Z"));	assert(res.msgs[2].dnsHostName == "z");	assert(res.msgs[2].lastLogon == "z");	assert(res.msgs[3].dn == s4.dn("cn=C"));	assert(res.msgs[3].dnsHostName == undefined);	assert(res.msgs[3].lastLogon == "z");	/* Search by negated conjunction of remote attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(&(lastLogon=x)(description=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 5);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=B"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "y");	assert(res.msgs[2].dn == s4.dn("cn=Z"));	assert(res.msgs[2].dnsHostName == "z");	assert(res.msgs[2].lastLogon == "z");	assert(res.msgs[3].dn == s4.dn("cn=C"));	assert(res.msgs[3].dnsHostName == undefined);	assert(res.msgs[3].lastLogon == "z");	/* Search by negated conjunction of local and remote attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(&(codePage=x)(description=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 5);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=Z"));	assert(res.msgs[2].dnsHostName == "z");	assert(res.msgs[2].lastLogon == "z");	assert(res.msgs[3].dn == s4.dn("cn=C"));	assert(res.msgs[3].dnsHostName == undefined);	assert(res.msgs[3].lastLogon == "z");	/* Search by negated disjunction of local attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(|(revision=x)(dnsHostName=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=A"));	assert(res.msgs[1].dnsHostName == undefined);	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=Z"));	assert(res.msgs[2].dnsHostName == "z");	assert(res.msgs[2].lastLogon == "z");	assert(res.msgs[3].dn == s4.dn("cn=C"));	assert(res.msgs[3].dnsHostName == undefined);	assert(res.msgs[3].lastLogon == "z");	/* Search by negated disjunction of remote attributes */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(|(badPwdCount=x)(lastLogon=x)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 4);	assert(res.msgs[0].dn == s4.dn("cn=Y"));	assert(res.msgs[0].dnsHostName == "y");	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=Z"));	assert(res.msgs[1].dnsHostName == "z");	assert(res.msgs[1].lastLogon == "z");	assert(res.msgs[2].dn == s4.dn("cn=C"));	assert(res.msgs[2].dnsHostName == undefined);	assert(res.msgs[2].lastLogon == "z");	/* Search by negated disjunction of local and remote attribute */	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(!(|(revision=x)(lastLogon=y)))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 4);	assert(res.msgs[0].dn == s4.dn("cn=A"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "x");	assert(res.msgs[1].dn == s4.dn("cn=Z"));	assert(res.msgs[1].dnsHostName == "z");	assert(res.msgs[1].lastLogon == "z");	assert(res.msgs[2].dn == s4.dn("cn=C"));	assert(res.msgs[2].dnsHostName == undefined);	assert(res.msgs[2].lastLogon == "z");	println("Search by complex parse tree");	attrs = new Array("dnsHostName", "lastLogon");	res = ldb.search("(|(&(revision=x)(dnsHostName=x))(!(&(description=x)(nextRid=y)))(badPwdCount=y))", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 6);	assert(res.msgs[0].dn == s4.dn("cn=B"));	assert(res.msgs[0].dnsHostName == undefined);	assert(res.msgs[0].lastLogon == "y");	assert(res.msgs[1].dn == s4.dn("cn=X"));	assert(res.msgs[1].dnsHostName == "x");	assert(res.msgs[1].lastLogon == "x");	assert(res.msgs[2].dn == s4.dn("cn=A"));	assert(res.msgs[2].dnsHostName == undefined);	assert(res.msgs[2].lastLogon == "x");	assert(res.msgs[3].dn == s4.dn("cn=Z"));	assert(res.msgs[3].dnsHostName == "z");	assert(res.msgs[3].lastLogon == "z");	assert(res.msgs[4].dn == s4.dn("cn=C"));	assert(res.msgs[4].dnsHostName == undefined);	assert(res.msgs[4].lastLogon == "z");	/* Clean up */	var dns = new Array();	dns[0] = s4.dn("cn=A");	dns[1] = s4.dn("cn=B");	dns[2] = s4.dn("cn=C");	dns[3] = s4.dn("cn=X");	dns[4] = s4.dn("cn=Y");	dns[5] = s4.dn("cn=Z");	for (i=0;i<dns.length;i++) {		var ok = ldb.del(dns[i]);		assert(ok.error == 0);	}}function test_map_modify(ldb, s3, s4){	println("Running modification tests on mapped data");	var ldif;	var attrs;	var dn, dn2;	var res;	var ok;	println("Testing modification of local records");	/* Add local record */	dn = "cn=test,dc=idealx,dc=org";	ldif = "dn: " + dn + "cn: testfoo: barrevision: 1description: test";	ok = ldb.add(ldif);	assert(ok.error == 0);	/* Check it's there */	attrs = new Array("foo", "revision", "description");	res = ldb.search("", dn, ldb.SCOPE_BASE, attrs);	assert(res.error == 0);	assert(res.msgs.length == 1);	assert(res.msgs[0].dn == dn);	assert(res.msgs[0].foo == "bar");	assert(res.msgs[0].revision == "1");	assert(res.msgs[0].description == "test");	/* Check it's not in the local db */	res = s4.db.search("(cn=test)", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	/* Check it's not in the remote db */	res = s3.db.search("(cn=test)", NULL, ldb.SCOPE_DEFAULT, attrs);	assert(res.error == 0);	assert(res.msgs.length == 0);	/* Modify local record */	ldif = "dn: " + dn + "replace: foofoo: bazreplace: descriptiondescription: foo";

⌨️ 快捷键说明

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