diff options
| author | Rob van der Linde <rob@catalyst.net.nz> | 2023-11-21 12:42:03 +1300 |
|---|---|---|
| committer | Douglas Bagnall <dbagnall@samba.org> | 2023-11-22 23:35:33 +0000 |
| commit | 91cc73352efca030a41b2f5aa2825da3aa0e52a2 (patch) | |
| tree | fa1c55699de02bcce0b9aa739d112b0abed744cd /python | |
| parent | 0ce9b7532553194da7560e122b68def34b445c81 (diff) | |
| download | samba-91cc73352efca030a41b2f5aa2825da3aa0e52a2.tar.gz samba-91cc73352efca030a41b2f5aa2825da3aa0e52a2.tar.bz2 samba-91cc73352efca030a41b2f5aa2825da3aa0e52a2.zip | |
netcmd: models: add SIDField field
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python')
| -rw-r--r-- | python/samba/netcmd/domain/models/fields.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/python/samba/netcmd/domain/models/fields.py b/python/samba/netcmd/domain/models/fields.py index 52f288c6d60..a718de28348 100644 --- a/python/samba/netcmd/domain/models/fields.py +++ b/python/samba/netcmd/domain/models/fields.py @@ -312,6 +312,31 @@ class GUIDField(Field): return MessageElement(ndr_pack(GUID(value)), flags, self.name) +class SIDField(Field): + """A SID field encodes and decodes SID data.""" + + def from_db_value(self, ldb, value): + """Convert MessageElement with a GUID into a str or list of str.""" + if value is None: + return + elif len(value) > 1 or self.many: + return [str(ndr_unpack(security.dom_sid, item)) for item in value] + else: + return str(ndr_unpack(security.dom_sid, value[0])) + + def to_db_value(self, ldb, value, flags): + """Convert str with GUID into MessageElement.""" + if value is None: + return + elif isinstance(value, list): + return MessageElement( + [ndr_pack(security.dom_sid(item)) for item in value], + flags, self.name) + else: + return MessageElement(ndr_pack(security.dom_sid(value)), + flags, self.name) + + class SDDLField(Field): """A SDDL field encodes and decodes SDDL data.""" |
