def save_global_settings(vars_, site_specific=False, custom_site_path=None): per_domain: Dict[str, Dict[Any, Any]] = {} # TODO: Uee _get_global_config_var_names() from domain class? for config_variable_class in config_variable_registry.values(): config_variable = config_variable_class() domain = config_variable.domain() varname = config_variable.ident() if varname not in vars_: continue per_domain.setdefault(domain().ident(), {})[varname] = vars_[varname] # Some settings are handed over from the central site but are not registered in the # configuration domains since the user must not change it directly. for varname in [ "wato_enabled", "userdb_automatic_sync", "user_login", ]: if varname in vars_: per_domain.setdefault(ConfigDomainGUI.ident(), {})[varname] = vars_[varname] for domain in ABCConfigDomain.enabled_domains(): domain_config = per_domain.get(domain().ident(), {}) if site_specific: domain().save_site_globals(domain_config, custom_site_path=custom_site_path) else: domain().save(domain_config, custom_site_path=custom_site_path)
def test_registered_configvars_types(): for var_class in config_variable_registry.values(): var = var_class() assert issubclass(var.group(), ConfigVariableGroup) assert issubclass(var.domain(), ABCConfigDomain) assert isinstance(var.ident(), str) assert isinstance(var.valuespec(), ValueSpec)
def save_global_settings(vars_, site_specific=False, custom_site_path=None): per_domain = {} # type: Dict[str, Dict[Any, Any]] # TODO: Uee _get_global_config_var_names() from domain class? for config_variable_class in config_variable_registry.values(): config_variable = config_variable_class() domain = config_variable.domain() varname = config_variable.ident() if varname not in vars_: continue per_domain.setdefault(domain.ident, {})[varname] = vars_[varname] # The global setting wato_enabled is not registered in the configuration domains # since the user must not change it directly. It is set by D-WATO on slave sites. if "wato_enabled" in vars_: per_domain.setdefault(ConfigDomainGUI.ident, {})["wato_enabled"] = vars_["wato_enabled"] if "userdb_automatic_sync" in vars_: per_domain.setdefault( ConfigDomainGUI.ident, {})["userdb_automatic_sync"] = vars_["userdb_automatic_sync"] for domain in ABCConfigDomain.enabled_domains(): domain_config = per_domain.get(domain.ident, {}) if site_specific: domain().save_site_globals(domain_config, custom_site_path=custom_site_path) else: domain().save(domain_config, custom_site_path=custom_site_path)