1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s4-scripting: Redefine getntacl() as accessing via the smbd VFS or directly

This allows us to write tests that compare the smbd vfs with what is
in the DB or xattr.

Andrew Bartlett
This commit is contained in:
Andrew Bartlett 2012-08-07 16:54:28 +10:00
parent a778662da8
commit b1825c6421
2 changed files with 11 additions and 6 deletions

View File

@ -55,8 +55,8 @@ def checkset_backend(lp, backend, eadbfile):
raise XattrBackendError("Invalid xattr backend choice %s"%backend)
def getntacl(lp, file, backend=None, eadbfile=None):
if use_ntvfs:
def getntacl(lp, file, backend=None, eadbfile=None, direct_db_access=True):
if direct_db_access:
(backend_obj, dbname) = checkset_backend(lp, backend, eadbfile)
if dbname is not None:
try:
@ -71,8 +71,13 @@ def getntacl(lp, file, backend=None, eadbfile=None):
else:
attribute = samba.xattr_native.wrap_getxattr(file,
xattr.XATTR_NTACL_NAME)
ntacl = ndr_unpack(xattr.NTACL, attribute)
return ntacl
ntacl = ndr_unpack(xattr.NTACL, attribute)
if ntacl.version == 1:
return ntacl.info
elif ntacl.version == 2:
return ntacl.info.sd
elif ntacl.version == 3:
return ntacl.info.sd
else:
return smbd.get_nt_acl(file)

View File

@ -49,7 +49,7 @@ class NtaclsTests(TestCase):
setntacl(lp,tempf,acl,"S-1-5-21-2212615479-2695158682-2101375467")
facl = getntacl(lp,tempf)
anysid = security.dom_sid(security.SID_NT_SELF)
self.assertEquals(facl.info.as_sddl(anysid),acl)
self.assertEquals(facl.as_sddl(anysid),acl)
os.unlink(tempf)
def test_setntacl_getntacl_param(self):
@ -62,7 +62,7 @@ class NtaclsTests(TestCase):
setntacl(lp,tempf,acl,"S-1-5-21-2212615479-2695158682-2101375467","tdb",os.path.join(path,"eadbtest.tdb"))
facl=getntacl(lp,tempf,"tdb",os.path.join(path,"eadbtest.tdb"))
domsid=security.dom_sid(security.SID_NT_SELF)
self.assertEquals(facl.info.as_sddl(domsid),acl)
self.assertEquals(facl.as_sddl(domsid),acl)
os.unlink(tempf)
def test_setntacl_invalidbackend(self):