Missing 'required' values in takes_params causes Web UI to treat required fields as optional.
Regression caused by ba0a1c6b33e2519a48754602413c8379fb1f0ff1 https://fedorahosted.org/freeipa/ticket/5258 -- Petr Vobornik
From 850ed7bf910a3254083d6c05e5845e27af4add0a Mon Sep 17 00:00:00 2001 From: Petr Vobornik <[email protected]> Date: Tue, 25 Aug 2015 16:26:00 +0200 Subject: [PATCH] fix missing information in object metadata Missing 'required' values in takes_params causes Web UI to treat required fields as optional. Regression caused by ba0a1c6b33e2519a48754602413c8379fb1f0ff1 https://fedorahosted.org/freeipa/ticket/5258 --- ipalib/parameters.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ipalib/parameters.py b/ipalib/parameters.py index 6139fe8d81c959871fd30c9032e6dacf0e977982..f9da3b0f5160ff577c7be4a8c4ef2247dceebb96 100644 --- a/ipalib/parameters.py +++ b/ipalib/parameters.py @@ -923,12 +923,23 @@ class Param(ReadOnly): def __json__(self): json_dict = {} - for key in self.__kw: - json_dict[key] = json_serialize(self.__kw[key]) + for (a, k, d) in self.kwargs: + if k in (callable, DefaultFrom): + continue + elif isinstance(getattr(self, a), frozenset): + json_dict[a] = [k for k in getattr(self, a, [])] + else: + val = getattr(self, a, '') + if val is None: + # ignore 'not set' because lack of their presence is + # the information itself + continue + json_dict[a] = json_serialize(val) + json_dict['class'] = self.__class__.__name__ json_dict['name'] = self.name json_dict['type'] = self.type.__name__ - json_dict['flags'] = json_serialize([f for f in self.flags]) + return json_dict -- 2.4.3
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code
