From: Rob van der Linde Date: Thu, 1 Feb 2024 03:16:11 +0000 (+1300) Subject: netcmd: models: fix BooleanField filtering didn't work on FALSE value X-Git-Tag: tdb-1.4.11~1827 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bd7a56364db20ea5ec589d870822f2e43fd1e58;p=thirdparty%2Fsamba.git netcmd: models: fix BooleanField filtering didn't work on FALSE value Signed-off-by: Rob van der Linde Reviewed-by: Douglas Bagnall Reviewed-by: Andrew Bartlett --- diff --git a/python/samba/netcmd/domain/models/fields.py b/python/samba/netcmd/domain/models/fields.py index 36ebc9fdb4f..e9f05296800 100644 --- a/python/samba/netcmd/domain/models/fields.py +++ b/python/samba/netcmd/domain/models/fields.py @@ -412,6 +412,14 @@ class BooleanField(Field): else: return MessageElement(str(bool(value)).upper(), flags, self.name) + def expression(self, value): + """Returns the ldb search expression for this field.""" + # BooleanField edge case: query by TRUE works but not by FALSE. + if value is False: + return f"(!({self.name}=TRUE))" + else: + return super().expression(str(value)) + class PossibleClaimValuesField(Field): """Field for parsing possible values XML for claim types.