diff options
-rw-r--r-- | source4/scripting/python/samba/ntacls.py | 13 | ||||
-rw-r--r-- | source4/scripting/python/samba/tests/ntacls.py | 4 |
2 files changed, 11 insertions, 6 deletions
diff --git a/source4/scripting/python/samba/ntacls.py b/source4/scripting/python/samba/ntacls.py index 64dfd17d64..6f8e770bba 100644 --- a/source4/scripting/python/samba/ntacls.py +++ b/source4/scripting/python/samba/ntacls.py @@ -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) diff --git a/source4/scripting/python/samba/tests/ntacls.py b/source4/scripting/python/samba/tests/ntacls.py index c867c95c4e..8cdf613078 100644 --- a/source4/scripting/python/samba/tests/ntacls.py +++ b/source4/scripting/python/samba/tests/ntacls.py @@ -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): |