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:
parent
a778662da8
commit
b1825c6421
@ -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)
|
||||
|
||||
|
@ -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):
|
||||
|
Loading…
Reference in New Issue
Block a user