mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Fix settings boolean value management
This commit is contained in:
parent
19fc1806a4
commit
97f50e396c
1 changed files with 11 additions and 5 deletions
|
@ -23,15 +23,18 @@ def is_boolean(value):
|
||||||
arg -- The string to check
|
arg -- The string to check
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Boolean
|
(is_boolean, boolean_value)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
if isinstance(value, bool):
|
if isinstance(value, bool):
|
||||||
return True
|
return True, value
|
||||||
elif isinstance(value, basestring):
|
elif isinstance(value, basestring):
|
||||||
return str(value).lower() in ['true', 'on', 'yes', 'false', 'off', 'no']
|
if str(value).lower() in ['true', 'on', 'yes', 'false', 'off', 'no']:
|
||||||
|
return True, str(value).lower() in ['true', 'on', 'yes']
|
||||||
else:
|
else:
|
||||||
return False
|
return False, None
|
||||||
|
else:
|
||||||
|
return False, None
|
||||||
|
|
||||||
|
|
||||||
# a settings entry is in the form of:
|
# a settings entry is in the form of:
|
||||||
|
@ -114,7 +117,10 @@ def settings_set(key, value):
|
||||||
key_type = settings[key]["type"]
|
key_type = settings[key]["type"]
|
||||||
|
|
||||||
if key_type == "bool":
|
if key_type == "bool":
|
||||||
if not is_boolean(value):
|
boolean_value = is_boolean(value)
|
||||||
|
if boolean_value[0]:
|
||||||
|
value = boolean_value[1]
|
||||||
|
else:
|
||||||
raise YunohostError('global_settings_bad_type_for_setting', setting=key,
|
raise YunohostError('global_settings_bad_type_for_setting', setting=key,
|
||||||
received_type=type(value).__name__, expected_type=key_type)
|
received_type=type(value).__name__, expected_type=key_type)
|
||||||
elif key_type == "int":
|
elif key_type == "int":
|
||||||
|
|
Loading…
Add table
Reference in a new issue