aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/plugins/ldap/tools.py
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-07-09 09:37:23 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-08-15 15:57:44 -0700
commit11782c0061c4c386fc5d8315b33a6d8464e83013 (patch)
tree2a5d954dbde26a2774e52bb684e195a084acb290 /mediagoblin/plugins/ldap/tools.py
parentc4513740bff20a0807b160c4bebf9a9a8955c03f (diff)
downloadmediagoblin-11782c0061c4c386fc5d8315b33a6d8464e83013.tar.lz
mediagoblin-11782c0061c4c386fc5d8315b33a6d8464e83013.tar.xz
mediagoblin-11782c0061c4c386fc5d8315b33a6d8464e83013.zip
- changed host and port to just a server uri
- added an option to connect with TLS - unbind after when done
Diffstat (limited to 'mediagoblin/plugins/ldap/tools.py')
-rw-r--r--mediagoblin/plugins/ldap/tools.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/mediagoblin/plugins/ldap/tools.py b/mediagoblin/plugins/ldap/tools.py
index 05cff5f9..fd13cfe4 100644
--- a/mediagoblin/plugins/ldap/tools.py
+++ b/mediagoblin/plugins/ldap/tools.py
@@ -26,19 +26,26 @@ class LDAP(object):
self.ldap_settings = mg_globals.global_config['plugins']['mediagoblin.plugins.ldap']
def _connect(self, server):
- _log.info('Connecting to {0}.'.format(server['LDAP_HOST']))
- self.conn = ldap.initialize('ldap://{0}:{1}/'.format(
- server['LDAP_HOST'], server['LDAP_PORT']))
+ _log.info('Connecting to {0}.'.format(server['LDAP_SERVER_URI']))
+ self.conn = ldap.initialize(server['LDAP_SERVER_URI'])
+
+ if server['LDAP_START_TLS'] == 'true':
+ _log.info('Initiating TLS')
+ self.conn.start_tls_s()
def login(self, username, password):
for k, v in self.ldap_settings.iteritems():
try:
self._connect(v)
- user_dn = v['USER_DN_TEMPLATE'].format(username=username)
+ user_dn = v['LDAP_USER_DN_TEMPLATE'].format(username=username)
self.conn.simple_bind_s(user_dn, password.encode('utf8'))
return username
except ldap.LDAPError, e:
_log.info(e)
+ finally:
+ _log.info('Unbinding {0}.').format(v['LDAP_SERVER_URI'])
+ self.conn.unbind()
+
return False