netcmd: json encoder supports security descriptor objects
authorRob van der Linde <rob@catalyst.net.nz>
Mon, 12 Feb 2024 02:53:53 +0000 (15:53 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 16 Feb 2024 02:41:36 +0000 (02:41 +0000)
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jo Sutton <josutton@catalyst.net.nz>
python/samba/netcmd/encoders.py

index 7d32b683acc7fe803546902246ea6912197bd330..5d13f989a72bbda9b610f97824939345ffc2c4b0 100644 (file)
@@ -27,6 +27,8 @@ from enum import Enum
 
 from ldb import Dn
 
+from samba.dcerpc.security import descriptor
+
 
 class JSONEncoder(json.JSONEncoder):
     """Custom JSON encoder class to help out with some data types.
@@ -44,6 +46,8 @@ class JSONEncoder(json.JSONEncoder):
             return str(obj.value)
         elif isinstance(obj, datetime):
             return obj.isoformat()
+        elif isinstance(obj, descriptor):
+            return obj.as_sddl()
         elif getattr(obj, "__json__", None) and callable(obj.__json__):
             return obj.__json__()
         return obj