From 0c142015eaf6ff8897bd40149bb0bc6da3978fc7 Mon Sep 17 00:00:00 2001 From: Luke Faraone Date: Mon, 25 Nov 2013 14:13:29 -0800 Subject: [PATCH] Tool to test LDAP functionality (imported from commit c4b4d8b25ba3afd333faf09bc232da2f92a57b7e) --- zerver/management/commands/query_ldap.py | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 zerver/management/commands/query_ldap.py diff --git a/zerver/management/commands/query_ldap.py b/zerver/management/commands/query_ldap.py new file mode 100644 index 0000000000..4da3b17889 --- /dev/null +++ b/zerver/management/commands/query_ldap.py @@ -0,0 +1,29 @@ +from __future__ import absolute_import + +import sys + +from django.contrib.auth import authenticate, login, get_backends +from django.core.management.base import BaseCommand +from django.conf import settings + +from django_auth_ldap.backend import LDAPBackend, _LDAPUser + + +# Run this on a cronjob to pick up on name changes. +def query_ldap(*args): + if len(args) != 1: + print "Usage: query_ldap " + sys.exit(1) + email = args[0] + for backend in get_backends(): + if isinstance(backend, LDAPBackend): + ldap_attrs = _LDAPUser(backend, backend.django_to_ldap_username(email)).attrs + if ldap_attrs is None: + print "No such user found" + else: + for django_field, ldap_field in settings.AUTH_LDAP_USER_ATTR_MAP.items(): + print "%s: %s" % (django_field, ldap_attrs[ldap_field]) + +class Command(BaseCommand): + def handle(self, *args, **options): + query_ldap(*args)