mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
r25948: Fix up the samba3sam test (which is very fragile) to work with the new
restrictions imposed by the samldb module. This module is worth keeping, because when we go back to do more extensive backend mapping, the testing of this module shows it is still possible. Andrew Bartlett
This commit is contained in:
parent
b01303b567
commit
a10d2554dc
123
testdata/samba3/provision_samba3sam.ldif
vendored
123
testdata/samba3/provision_samba3sam.ldif
vendored
@ -75,127 +75,4 @@ isSynchronized: TRUE
|
||||
vendorName: Samba Team (http://samba.org)
|
||||
vendorVersion: ${VERSION}
|
||||
|
||||
dn: CN=Templates
|
||||
objectClass: top
|
||||
objectClass: container
|
||||
cn: Templates
|
||||
description: Container for SAM account templates
|
||||
instanceType: 4
|
||||
showInAdvancedViewOnly: TRUE
|
||||
systemFlags: 2348810240
|
||||
objectCategory: CN=Container,CN=Schema,CN=Configuration,${BASEDN}
|
||||
isCriticalSystemObject: TRUE
|
||||
|
||||
###
|
||||
# note! the template users must not match normal searches. Be careful
|
||||
# with what classes you put them in
|
||||
###
|
||||
|
||||
dn: CN=TemplateUser,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: person
|
||||
objectClass: organizationalPerson
|
||||
objectClass: Template
|
||||
objectClass: userTemplate
|
||||
cn: TemplateUser
|
||||
instanceType: 4
|
||||
userAccountControl: 514
|
||||
badPwdCount: 0
|
||||
codePage: 0
|
||||
countryCode: 0
|
||||
badPasswordTime: 0
|
||||
lastLogoff: 0
|
||||
lastLogon: 0
|
||||
pwdLastSet: 0
|
||||
primaryGroupID: 513
|
||||
accountExpires: -1
|
||||
logonCount: 0
|
||||
sAMAccountType: 805306368
|
||||
objectCategory: CN=Person,CN=Schema,CN=Configuration,${BASEDN}
|
||||
|
||||
dn: CN=TemplateComputer,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: person
|
||||
objectClass: organizationalPerson
|
||||
objectClass: Template
|
||||
objectClass: userTemplate
|
||||
cn: TemplateComputer
|
||||
instanceType: 4
|
||||
userAccountControl: 4098
|
||||
badPwdCount: 0
|
||||
codePage: 0
|
||||
countryCode: 0
|
||||
badPasswordTime: 0
|
||||
lastLogoff: 0
|
||||
lastLogon: 0
|
||||
pwdLastSet: 0
|
||||
primaryGroupID: 513
|
||||
accountExpires: -1
|
||||
logonCount: 0
|
||||
sAMAccountType: 805306369
|
||||
objectCategory: CN=Computer,CN=Schema,CN=Configuration,${BASEDN}
|
||||
|
||||
dn: CN=TemplateTrustingDomain,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: Template
|
||||
objectClass: userTemplate
|
||||
cn: TemplateTrustingDomain
|
||||
instanceType: 4
|
||||
userAccountControl: 2080
|
||||
badPwdCount: 0
|
||||
codePage: 0
|
||||
countryCode: 0
|
||||
badPasswordTime: 0
|
||||
lastLogoff: 0
|
||||
lastLogon: 0
|
||||
primaryGroupID: 513
|
||||
accountExpires: -1
|
||||
logonCount: 0
|
||||
sAMAccountType: 805306370
|
||||
|
||||
dn: CN=TemplateGroup,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: Template
|
||||
objectClass: groupTemplate
|
||||
cn: TemplateGroup
|
||||
instanceType: 4
|
||||
groupType: -2147483646
|
||||
sAMAccountType: 268435456
|
||||
objectCategory: CN=Group,CN=Schema,CN=Configuration,${BASEDN}
|
||||
|
||||
# Currently this isn't used, we don't have a way to detect it different from an incoming alias
|
||||
#
|
||||
# dn: CN=TemplateAlias,CN=Templates
|
||||
# objectClass: top
|
||||
# objectClass: Template
|
||||
# objectClass: aliasTemplate
|
||||
# cn: TemplateAlias
|
||||
# instanceType: 4
|
||||
# groupType: -2147483644
|
||||
# sAMAccountType: 268435456
|
||||
|
||||
dn: CN=TemplateForeignSecurityPrincipal,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: Template
|
||||
objectClass: foreignSecurityPrincipalTemplate
|
||||
cn: TemplateForeignSecurityPrincipal
|
||||
instanceType: 4
|
||||
showInAdvancedViewOnly: TRUE
|
||||
objectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,${BASEDN}
|
||||
|
||||
dn: CN=TemplateSecret,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: leaf
|
||||
objectClass: Template
|
||||
objectClass: secretTemplate
|
||||
cn: TemplateSecret
|
||||
instanceType: 4
|
||||
|
||||
dn: CN=TemplateTrustedDomain,CN=Templates
|
||||
objectClass: top
|
||||
objectClass: leaf
|
||||
objectClass: Template
|
||||
objectClass: trustedDomainTemplate
|
||||
cn: TemplateTrustedDomain
|
||||
instanceType: 4
|
||||
|
||||
|
@ -263,7 +263,20 @@ function test_map_search(ldb, s3, s4)
|
||||
var dn;
|
||||
var attrs;
|
||||
|
||||
/* Add a set of split records */
|
||||
|
||||
var ldif = "
|
||||
dn: " + "sambaDomainName=TESTS," + s3.BASEDN + "
|
||||
objectclass: sambaDomain
|
||||
objectclass: top
|
||||
sambaSID: S-1-5-21-4231626423-2410014848-2360679739
|
||||
sambaNextRid: 2000
|
||||
sambaDomainName: TESTS"
|
||||
ldif = substitute_var(ldif, s3);
|
||||
assert(ldif != undefined);
|
||||
var ok = s3.db.add(ldif);
|
||||
assert(ok.error == 0);
|
||||
|
||||
printf("Add a set of split records");
|
||||
var ldif = "
|
||||
dn: " + s4.dn("cn=X") + "
|
||||
objectClass: user
|
||||
@ -297,6 +310,7 @@ nextRid: y
|
||||
lastLogon: z
|
||||
description: y
|
||||
";
|
||||
|
||||
ldif = substitute_var(ldif, s4);
|
||||
assert(ldif != undefined);
|
||||
var ok = ldb.add(ldif);
|
||||
@ -305,7 +319,8 @@ description: y
|
||||
assert(ok.error == 0);
|
||||
}
|
||||
|
||||
/* Add a set of remote records */
|
||||
println("Add a set of remote records");
|
||||
|
||||
var ldif = "
|
||||
dn: " + s3.dn("cn=A") + "
|
||||
objectClass: posixAccount
|
||||
@ -429,7 +444,7 @@ description: y
|
||||
*/
|
||||
res = ldb.search("(objectSid=*)", NULL, ldb. SCOPE_DEFAULT, attrs);
|
||||
assert(res.error == 0);
|
||||
assert(res.msgs.length == 2);
|
||||
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");
|
||||
@ -610,7 +625,7 @@ description: y
|
||||
attrs = new Array("dnsHostName", "lastLogon");
|
||||
res = ldb.search("(!(revision=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
|
||||
assert(res.error == 0);
|
||||
assert(res.msgs.length == 4);
|
||||
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");
|
||||
@ -628,7 +643,7 @@ description: y
|
||||
attrs = new Array("dnsHostName", "lastLogon");
|
||||
res = ldb.search("(!(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
|
||||
assert(res.error == 0);
|
||||
assert(res.msgs.length == 2);
|
||||
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");
|
||||
@ -640,7 +655,7 @@ description: y
|
||||
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 == 4);
|
||||
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");
|
||||
@ -658,7 +673,7 @@ description: y
|
||||
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 == 4);
|
||||
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");
|
||||
@ -676,7 +691,7 @@ description: y
|
||||
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 == 4);
|
||||
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");
|
||||
@ -711,7 +726,7 @@ description: y
|
||||
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.length == 4);
|
||||
assert(res.msgs[0].dn == s4.dn("cn=Y"));
|
||||
assert(res.msgs[0].dnsHostName == "y");
|
||||
assert(res.msgs[0].lastLogon == "y");
|
||||
@ -726,7 +741,7 @@ description: y
|
||||
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.length == 4);
|
||||
assert(res.msgs[0].dn == s4.dn("cn=A"));
|
||||
assert(res.msgs[0].dnsHostName == undefined);
|
||||
assert(res.msgs[0].lastLogon == "x");
|
||||
@ -737,11 +752,11 @@ description: y
|
||||
assert(res.msgs[2].dnsHostName == undefined);
|
||||
assert(res.msgs[2].lastLogon == "z");
|
||||
|
||||
/* Search by complex parse tree */
|
||||
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 == 5);
|
||||
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");
|
||||
@ -1174,18 +1189,28 @@ samba3.BASEDN = "cn=Samba3Sam";
|
||||
samba3.db = ldb_init();
|
||||
samba3.dn = make_dn;
|
||||
|
||||
var templates = new Object("templates partition info");
|
||||
templates.file = prefix + "/" + "templates.ldb";
|
||||
templates.url = "tdb://" + templates.file;
|
||||
templates.BASEDN = "cn=templates";
|
||||
templates.db = ldb_init();
|
||||
|
||||
sys.unlink(ldbfile);
|
||||
sys.unlink(samba3.file);
|
||||
sys.unlink(templates.file);
|
||||
sys.unlink(samba4.file);
|
||||
|
||||
var ok = ldb.connect(ldburl);
|
||||
assert(ok);
|
||||
var ok = samba3.db.connect(samba3.url);
|
||||
assert(ok);
|
||||
var ok = templates.db.connect(templates.url);
|
||||
assert(ok);
|
||||
var ok = samba4.db.connect(samba4.url);
|
||||
assert(ok);
|
||||
|
||||
setup_data(samba3, sys.file_load(datadir + "/" + "samba3.ldif"));
|
||||
setup_data(templates, sys.file_load(datadir + "/" + "provision_samba3sam_templates.ldif"));
|
||||
setup_modules(ldb, samba3, samba4, sys.file_load(datadir + "/" + "provision_samba3sam.ldif"));
|
||||
|
||||
ldb = ldb_init();
|
||||
@ -1197,6 +1222,7 @@ test_s3sam_modify(ldb, samba3);
|
||||
|
||||
sys.unlink(ldbfile);
|
||||
sys.unlink(samba3.file);
|
||||
sys.unlink(templates.file);
|
||||
sys.unlink(samba4.file);
|
||||
|
||||
ldb = ldb_init();
|
||||
@ -1205,10 +1231,14 @@ assert(ok);
|
||||
samba3.db = ldb_init();
|
||||
var ok = samba3.db.connect(samba3.url);
|
||||
assert(ok);
|
||||
templates.db = ldb_init();
|
||||
var ok = templates.db.connect(templates.url);
|
||||
assert(ok);
|
||||
samba4.db = ldb_init();
|
||||
var ok = samba4.db.connect(samba4.url);
|
||||
assert(ok);
|
||||
|
||||
setup_data(templates, sys.file_load(datadir + "/" + "provision_samba3sam_templates.ldif"));
|
||||
setup_modules(ldb, samba3, samba4, sys.file_load(datadir + "provision_samba3sam.ldif"));
|
||||
|
||||
ldb = ldb_init();
|
||||
|
Loading…
Reference in New Issue
Block a user