| @@ -67,20 +67,21 @@ def make_new_config(): | |||||
| def are_passwords_encrypted(): | def are_passwords_encrypted(): | ||||
| """Determine if the passwords in our config file are encrypted, returning | """Determine if the passwords in our config file are encrypted, returning | ||||
| either True or False.""" | either True or False.""" | ||||
| data = _config.getElementsByTagName("config")[0] | |||||
| element = data.getElementsByTagName("encrypt-passwords")[0] | |||||
| return attribute_to_bool(element, "enabled") | |||||
| element = _config.getElementsByTagName("config")[0] | |||||
| return attribute_to_bool(element, "encrypt-passwords", default=False) | |||||
| def attribute_to_bool(element, attribute): | |||||
| def attribute_to_bool(element, attribute, default=None): | |||||
| """Return True if the value of element's attribute is 'true', '1', or 'on'; | """Return True if the value of element's attribute is 'true', '1', or 'on'; | ||||
| return False if it is 'false', '0', or 'off' (regardless of | return False if it is 'false', '0', or 'off' (regardless of | ||||
| capitalization); raise TypeMismatchException if it does match any of | |||||
| those.""" | |||||
| capitalization); return default if it is empty; raise TypeMismatchException | |||||
| if it does match any of those.""" | |||||
| value = element.getAttribute(attribute).lower() | value = element.getAttribute(attribute).lower() | ||||
| if value in ["true", "1", "on"]: | if value in ["true", "1", "on"]: | ||||
| return True | return True | ||||
| elif value in ["false", "0", "off"]: | elif value in ["false", "0", "off"]: | ||||
| return False | return False | ||||
| elif value == '': | |||||
| return default | |||||
| else: | else: | ||||
| e = ("Expected a bool in attribute '{0}' of element '{1}', but " + | e = ("Expected a bool in attribute '{0}' of element '{1}', but " + | ||||
| "got '{2}'.").format(attribute, element.tagName, value) | "got '{2}'.").format(attribute, element.tagName, value) | ||||