diff --git a/api/__init__.py b/api/__init__.py index 04ea581..ef866aa 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -7,7 +7,7 @@ apiSpec = None # API specification apiVersion = None # API specification version. Extracted from the OpenAPI document. -backendVersion = "1.3.12" # Backend version number +backendVersion = "1.3.13" # Backend version number def _loadOpenApiSpec(): diff --git a/services/ldap.py b/services/ldap.py index 8087614..8ba421c 100644 --- a/services/ldap.py +++ b/services/ldap.py @@ -60,10 +60,6 @@ def __init__(self, config=None): except Exception as err: msg = " - ".join(str(arg) for arg in err.args) or type(err).__name__ raise ServiceUnavailableError("Failed to connect to server: "+msg) - if "filter" in self._config["users"]: - f = self._config["users"]["filter"] - if f is not None and len(f) != 0 and f[0] != "(" and f[-1] != ")": - self._config["users"]["filter"] = "("+f+")" if "defaultQuota" in self._config["users"]: self._defaultProps = {prop: self._config["users"]["defaultQuota"] for prop in ("storagequotalimit", "prohibitsendquota", "prohibitreceivequota")} @@ -83,6 +79,10 @@ def _checkConfig(cls, config): raise KeyError("Missing required config value '{}'".format(cls._configMap.get(required, "user."+required))) _templatesEnabled = config["users"].get("templates", []) userAttributes = {} + if "filter" in config["users"]: + f = config["users"]["filter"] + if f is not None and len(f) != 0 and f[0] != "(" and f[-1] != ")": + config["users"]["filter"] = "("+f+")" for _template in _templatesEnabled: if _template not in cls._templates: raise ValueError("Unknown template '{}'".format(_template)) @@ -378,6 +378,7 @@ def searchUsers(self, query, domains=None, limit=25): @classmethod def testConfig(cls, config): + cls.init() try: cls._checkConfig(config) cls.testConnection(config)