]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netcmd: Add ‘allow_device_in_sddl’ parameter to SDDLField()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Tue, 7 Nov 2023 02:43:29 +0000 (15:43 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 9 Nov 2023 08:00:30 +0000 (08:00 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/netcmd/domain/models/fields.py

index 845b34d10ab5618f07418a43bece2bbee4352219..52f288c6d60d31a82d47303eb57d1146f5a69b3a 100644 (file)
@@ -315,6 +315,17 @@ class GUIDField(Field):
 class SDDLField(Field):
     """A SDDL field encodes and decodes SDDL data."""
 
+    def __init__(self,
+                 name,
+                 *,
+                 many=False,
+                 default=None,
+                 hidden=False,
+                 allow_device_in_sddl=True):
+        """Create a new SDDLField."""
+        self.allow_device_in_sddl = allow_device_in_sddl
+        super().__init__(name, many=many, default=default, hidden=hidden)
+
     def from_db_value(self, ldb, value):
         if value is None:
             return
@@ -330,13 +341,18 @@ class SDDLField(Field):
             return
         elif isinstance(value, list):
             return MessageElement([ndr_pack(security.descriptor.from_sddl(
-                item, domain_sid)) for item in value],
+                item,
+                domain_sid,
+                allow_device_in_sddl=self.allow_device_in_sddl))
+                                   for item in value],
                 flags,
                 self.name)
         else:
             return MessageElement(
-                ndr_pack(security.descriptor.from_sddl(value,
-                                                       domain_sid)),
+                ndr_pack(security.descriptor.from_sddl(
+                    value,
+                    domain_sid,
+                    allow_device_in_sddl=self.allow_device_in_sddl)),
                 flags,
                 self.name
             )