mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Fixed metadata serialization of Numbers and DNs
There were following problems: 1. DNs and Decimals weren't properly serialized. Serialization output was object with empty __base64__ attribute. It was fixed by converting them to string. 2. numberical values equal to 0 were excluded from metadata. It broke many of minvalue checks in Web UI. Now excluding only None and False values as initally intended. https://fedorahosted.org/freeipa/ticket/3052
This commit is contained in:
@@ -26,6 +26,7 @@ import imp
|
||||
import time
|
||||
import socket
|
||||
import re
|
||||
import decimal
|
||||
from types import NoneType
|
||||
from weakref import WeakKeyDictionary
|
||||
from dns import resolver, rdatatype
|
||||
@@ -46,6 +47,8 @@ def json_serialize(obj):
|
||||
return obj
|
||||
if isinstance(obj, str):
|
||||
return obj.decode('utf-8')
|
||||
if isinstance(obj, (decimal.Decimal, DN)):
|
||||
return str(obj)
|
||||
if not callable(getattr(obj, '__json__', None)):
|
||||
# raise TypeError('%r is not JSON serializable')
|
||||
return ''
|
||||
|
||||
Reference in New Issue
Block a user