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):  | 
