Module: check_mk
Branch: master
Commit: 0421ee9151ae1d163ddf06e48b77b9d69da3e403
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=0421ee9151ae1d…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Jul 8 09:27:06 2016 +0200
Fixed problem with site specific ldap connections
---
web/htdocs/userdb.py | 23 +++++++++++------------
web/plugins/userdb/ldap.py | 8 ++++++++
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/web/htdocs/userdb.py b/web/htdocs/userdb.py
index bd20b6a..2644f34 100644
--- a/web/htdocs/userdb.py
+++ b/web/htdocs/userdb.py
@@ -89,8 +89,15 @@ def get_connections(only_enabled=False):
connections.insert(0, ('htpasswd', connector_class({})))
else:
for connection_config in config.user_connections:
- if not only_enabled or not connection_config.get('disabled'):
- connections.append((connection_config['id'],
connector_class(connection_config)))
+ if only_enabled and connection_config.get('disabled'):
+ continue
+
+ connection = connector_class(connection_config)
+
+ if only_enabled and not connection.is_enabled():
+ continue
+
+ connections.append((connection_config['id'], connection))
return connections
@@ -99,8 +106,8 @@ def active_connections():
def connection_choices():
- return sorted([ (cid, "%s (%s)" % (cid, c.type())) for cid, c in
get_connections()
- if c.type() == "ldap"],
+ return sorted([ (cid, "%s (%s)" % (cid, c.type())) for cid, c in
get_connections(only_enabled=False)
+ if c.type() == "ldap" ],
key=lambda (x, y): y)
@@ -1251,14 +1258,6 @@ def execute_userdb_job():
return
for connection_id, connection in active_connections():
- if connection.type() != "ldap":
- continue # currently only ldap can sync
-
- sync_config = user_sync_config()
- if type(sync_config) == tuple and connection_id not in sync_config[1]:
- #logger(LOG_DEBUG, 'Skipping disabled connection %s' %
(connection_id))
- continue
-
try:
connection.on_cron_job()
except:
diff --git a/web/plugins/userdb/ldap.py b/web/plugins/userdb/ldap.py
index 987438e..c04eca8 100644
--- a/web/plugins/userdb/ldap.py
+++ b/web/plugins/userdb/ldap.py
@@ -1075,6 +1075,14 @@ class LDAPUserConnector(UserConnector):
self.persist_sync_failure()
+ def is_enabled(self):
+ sync_config = user_sync_config()
+ if type(sync_config) == tuple and self.id() not in sync_config[1]:
+ #logger(LOG_DEBUG, 'Skipping disabled connection %s' % (self.id()))
+ return False
+ return True
+
+
def sync_is_needed(self):
return self.get_last_sync_time() + self.get_cache_livetime() <= time.time()