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 <pvobo...@redhat.com>
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

Reply via email to