[Python-modules-commits] [django-python3-ldap] 01/04: Import django-python3-ldap_0.9.12.orig.tar.gz
Michael Fladischer
fladi at moszumanska.debian.org
Fri Mar 17 07:32:06 UTC 2017
This is an automated email from the git hooks/post-receive script.
fladi pushed a commit to branch master
in repository django-python3-ldap.
commit f4dba0513594012a00a0224dc428e0a2d018e89d
Author: Michael Fladischer <FladischerMichael at fladi.at>
Date: Fri Mar 17 07:57:00 2017 +0100
Import django-python3-ldap_0.9.12.orig.tar.gz
---
PKG-INFO | 2 +-
django_python3_ldap.egg-info/PKG-INFO | 2 +-
django_python3_ldap.egg-info/requires.txt | 4 +-
django_python3_ldap/__init__.py | 2 +-
django_python3_ldap/conf.py | 60 +++++++++++-----------
django_python3_ldap/ldap.py | 46 +++++++++--------
.../management/commands/ldap_promote.py | 4 +-
.../management/commands/ldap_sync_users.py | 7 ++-
django_python3_ldap/tests.py | 37 +++++++------
django_python3_ldap/utils.py | 30 ++++++-----
setup.py | 24 ++++-----
11 files changed, 113 insertions(+), 105 deletions(-)
diff --git a/PKG-INFO b/PKG-INFO
index e0d7f0f..536240e 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-python3-ldap
-Version: 0.9.11
+Version: 0.9.12
Summary: Django LDAP user authentication backend for Python 3.
Home-page: https://github.com/etianen/django-python3-ldap
Author: Dave Hall
diff --git a/django_python3_ldap.egg-info/PKG-INFO b/django_python3_ldap.egg-info/PKG-INFO
index e0d7f0f..536240e 100644
--- a/django_python3_ldap.egg-info/PKG-INFO
+++ b/django_python3_ldap.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: django-python3-ldap
-Version: 0.9.11
+Version: 0.9.12
Summary: Django LDAP user authentication backend for Python 3.
Home-page: https://github.com/etianen/django-python3-ldap
Author: Dave Hall
diff --git a/django_python3_ldap.egg-info/requires.txt b/django_python3_ldap.egg-info/requires.txt
index 2adeecc..3187fd1 100644
--- a/django_python3_ldap.egg-info/requires.txt
+++ b/django_python3_ldap.egg-info/requires.txt
@@ -1,2 +1,2 @@
-django>=1.7
-ldap3>=0.9.8.4,<=1.4.0,!=0.9.9.2
+django>=1.8
+ldap3==2.2.0
diff --git a/django_python3_ldap/__init__.py b/django_python3_ldap/__init__.py
index bd222f3..c6b0a53 100644
--- a/django_python3_ldap/__init__.py
+++ b/django_python3_ldap/__init__.py
@@ -3,4 +3,4 @@ Django LDAP user authentication backend for Python 3.
"""
-__version__ = (0, 9, 11)
+__version__ = (0, 9, 12)
diff --git a/django_python3_ldap/conf.py b/django_python3_ldap/conf.py
index e1e3469..3921205 100644
--- a/django_python3_ldap/conf.py
+++ b/django_python3_ldap/conf.py
@@ -34,28 +34,28 @@ class LazySettings(object):
self._settings = settings
LDAP_AUTH_URL = LazySetting(
- name = "LDAP_AUTH_URL",
- default = "ldap://localhost:389",
+ name="LDAP_AUTH_URL",
+ default="ldap://localhost:389",
)
LDAP_AUTH_USE_TLS = LazySetting(
- name = "LDAP_AUTH_USE_TLS",
- default = False,
+ name="LDAP_AUTH_USE_TLS",
+ default=False,
)
LDAP_AUTH_SEARCH_BASE = LazySetting(
- name = "LDAP_AUTH_SEARCH_BASE",
- default = "ou=people,dc=example,dc=com",
+ name="LDAP_AUTH_SEARCH_BASE",
+ default="ou=people,dc=example,dc=com",
)
LDAP_AUTH_OBJECT_CLASS = LazySetting(
- name = "LDAP_AUTH_OBJECT_CLASS",
- default = "inetOrgPerson",
+ name="LDAP_AUTH_OBJECT_CLASS",
+ default="inetOrgPerson",
)
LDAP_AUTH_USER_FIELDS = LazySetting(
- name = "LDAP_AUTH_USER_FIELDS",
- default = {
+ name="LDAP_AUTH_USER_FIELDS",
+ default={
"username": "uid",
"first_name": "givenName",
"last_name": "sn",
@@ -64,55 +64,55 @@ class LazySettings(object):
)
LDAP_AUTH_USER_LOOKUP_FIELDS = LazySetting(
- name = "LDAP_AUTH_USER_LOOKUP_FIELDS",
- default = (
+ name="LDAP_AUTH_USER_LOOKUP_FIELDS",
+ default=(
"username",
),
)
LDAP_AUTH_CLEAN_USER_DATA = LazySetting(
- name = "LDAP_AUTH_CLEAN_USER_DATA",
- default = "django_python3_ldap.utils.clean_user_data",
+ name="LDAP_AUTH_CLEAN_USER_DATA",
+ default="django_python3_ldap.utils.clean_user_data",
)
LDAP_AUTH_FORMAT_SEARCH_FILTERS = LazySetting(
- name = "LDAP_AUTH_FORMAT_SEARCH_FILTERS",
- default = "django_python3_ldap.utils.format_search_filters",
+ name="LDAP_AUTH_FORMAT_SEARCH_FILTERS",
+ default="django_python3_ldap.utils.format_search_filters",
)
LDAP_AUTH_SYNC_USER_RELATIONS = LazySetting(
- name = "LDAP_AUTH_SYNC_USER_RELATIONS",
- default = "django_python3_ldap.utils.sync_user_relations",
+ name="LDAP_AUTH_SYNC_USER_RELATIONS",
+ default="django_python3_ldap.utils.sync_user_relations",
)
LDAP_AUTH_FORMAT_USERNAME = LazySetting(
- name = "LDAP_AUTH_FORMAT_USERNAME",
- default = "django_python3_ldap.utils.format_username_openldap",
+ name="LDAP_AUTH_FORMAT_USERNAME",
+ default="django_python3_ldap.utils.format_username_openldap",
)
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = LazySetting(
- name = "LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN",
- default = None,
+ name="LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN",
+ default=None,
)
LDAP_AUTH_TEST_USER_USERNAME = LazySetting(
- name = "LDAP_AUTH_TEST_USER_USERNAME",
- default = "",
+ name="LDAP_AUTH_TEST_USER_USERNAME",
+ default="",
)
LDAP_AUTH_TEST_USER_PASSWORD = LazySetting(
- name = "LDAP_AUTH_TEST_USER_PASSWORD",
- default = "",
+ name="LDAP_AUTH_TEST_USER_PASSWORD",
+ default="",
)
LDAP_AUTH_CONNECTION_USERNAME = LazySetting(
- name = "LDAP_AUTH_CONNECTION_USERNAME",
- default = None,
+ name="LDAP_AUTH_CONNECTION_USERNAME",
+ default=None,
)
LDAP_AUTH_CONNECTION_PASSWORD = LazySetting(
- name = "LDAP_AUTH_CONNECTION_PASSWORD",
- default = None,
+ name="LDAP_AUTH_CONNECTION_PASSWORD",
+ default=None,
)
diff --git a/django_python3_ldap/ldap.py b/django_python3_ldap/ldap.py
index a377c33..151502e 100644
--- a/django_python3_ldap/ldap.py
+++ b/django_python3_ldap/ldap.py
@@ -3,12 +3,10 @@ Low-level LDAP hooks.
"""
import ldap3
+from ldap3.core.exceptions import LDAPException
import logging
-
from contextlib import contextmanager
-
from django.contrib.auth import get_user_model
-
from django_python3_ldap.conf import settings
from django_python3_ldap.utils import import_func, format_search_filter
@@ -59,7 +57,7 @@ class Connection(object):
}
# Update or create the user.
user, created = User.objects.update_or_create(
- defaults = user_fields,
+ defaults=user_fields,
**user_lookup
)
# Update relations
@@ -73,12 +71,12 @@ class Connection(object):
users in the LDAP database.
"""
paged_entries = self._connection.extend.standard.paged_search(
- search_base = settings.LDAP_AUTH_SEARCH_BASE,
- search_filter = format_search_filter({}),
- search_scope = ldap3.SEARCH_SCOPE_WHOLE_SUBTREE,
- attributes = ldap3.ALL_ATTRIBUTES,
- get_operational_attributes = True,
- paged_size = 30,
+ search_base=settings.LDAP_AUTH_SEARCH_BASE,
+ search_filter=format_search_filter({}),
+ search_scope=ldap3.SUBTREE,
+ attributes=ldap3.ALL_ATTRIBUTES,
+ get_operational_attributes=True,
+ paged_size=30,
)
return filter(None, (
self._get_or_create_user(entry)
@@ -96,12 +94,12 @@ class Connection(object):
"""
# Search the LDAP database.
if self._connection.search(
- search_base = settings.LDAP_AUTH_SEARCH_BASE,
- search_filter = format_search_filter(kwargs),
- search_scope = ldap3.SEARCH_SCOPE_WHOLE_SUBTREE,
- attributes = ldap3.ALL_ATTRIBUTES,
- get_operational_attributes = True,
- size_limit = 1,
+ search_base=settings.LDAP_AUTH_SEARCH_BASE,
+ search_filter=format_search_filter(kwargs),
+ search_scope=ldap3.SUBTREE,
+ attributes=ldap3.ALL_ATTRIBUTES,
+ get_operational_attributes=True,
+ size_limit=1,
):
return self._get_or_create_user(self._connection.response[0])
return None
@@ -133,13 +131,17 @@ def connection(**kwargs):
else:
auto_bind = ldap3.AUTO_BIND_NO_TLS
try:
- with ldap3.Connection(ldap3.Server(settings.LDAP_AUTH_URL, allowed_referral_hosts=[("*", True)]), user=username, password=password, auto_bind=auto_bind) as c:
+ with ldap3.Connection(ldap3.Server(
+ settings.LDAP_AUTH_URL,
+ allowed_referral_hosts=[("*", True)]),
+ user=username,
+ password=password,
+ auto_bind=auto_bind,
+ raise_exceptions=True,
+ ) as c:
yield Connection(c)
- except ldap3.LDAPBindError as ex:
- logger.info("LDAP login failed: {ex}".format(ex=ex))
- yield None
- except ldap3.LDAPException as ex:
- logger.warn("LDAP connect failed: {ex}".format(ex=ex))
+ except LDAPException as ex:
+ logger.info("LDAP connect failed: {ex}".format(ex=ex))
yield None
diff --git a/django_python3_ldap/management/commands/ldap_promote.py b/django_python3_ldap/management/commands/ldap_promote.py
index 5080181..b4f7373 100644
--- a/django_python3_ldap/management/commands/ldap_promote.py
+++ b/django_python3_ldap/management/commands/ldap_promote.py
@@ -25,7 +25,7 @@ class Command(BaseCommand):
user = User.objects.get(username=username)
except User.DoesNotExist:
raise CommandError("User with username {username} does not exist".format(
- username = username,
+ username=username,
))
else:
user.is_staff = True
@@ -33,5 +33,5 @@ class Command(BaseCommand):
user.save()
if verbosity >= 1:
self.stdout.write("Promoted {user} to admin superuser".format(
- user = user,
+ user=user,
))
diff --git a/django_python3_ldap/management/commands/ldap_sync_users.py b/django_python3_ldap/management/commands/ldap_sync_users.py
index c18fa01..8a6abb5 100644
--- a/django_python3_ldap/management/commands/ldap_sync_users.py
+++ b/django_python3_ldap/management/commands/ldap_sync_users.py
@@ -12,9 +12,12 @@ class Command(BaseCommand):
@transaction.atomic()
def handle(self, *args, **kwargs):
verbosity = int(kwargs.get("verbosity", 1))
- with ldap.connection(username=settings.LDAP_AUTH_CONNECTION_USERNAME, password=settings.LDAP_AUTH_CONNECTION_PASSWORD) as connection:
+ with ldap.connection(
+ username=settings.LDAP_AUTH_CONNECTION_USERNAME,
+ password=settings.LDAP_AUTH_CONNECTION_PASSWORD,
+ ) as connection:
for user in connection.iter_users():
if verbosity >= 1:
self.stdout.write("Synced {user}".format(
- user = user,
+ user=user,
))
diff --git a/django_python3_ldap/tests.py b/django_python3_ldap/tests.py
index 556e6ff..3551bdc 100644
--- a/django_python3_ldap/tests.py
+++ b/django_python3_ldap/tests.py
@@ -46,7 +46,7 @@ class TestLdap(TestCase):
def testGetUserKwargsSuccess(self):
with connection() as c:
user = c.get_user(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
)
self.assertIsInstance(user, User)
self.assertEqual(user.username, settings.LDAP_AUTH_TEST_USER_USERNAME)
@@ -54,7 +54,7 @@ class TestLdap(TestCase):
def testGetUserKwargsIncorrectUsername(self):
with connection() as c:
user = c.get_user(
- username = "bad" + settings.LDAP_AUTH_TEST_USER_USERNAME,
+ username="bad" + settings.LDAP_AUTH_TEST_USER_USERNAME,
)
self.assertEqual(user, None)
@@ -62,34 +62,34 @@ class TestLdap(TestCase):
def testAuthenticateUserSuccess(self):
user = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
self.assertIsInstance(user, User)
self.assertEqual(user.username, settings.LDAP_AUTH_TEST_USER_USERNAME)
def testAuthenticateUserBadUsername(self):
user = authenticate(
- username = "bad" + settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username="bad" + settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
self.assertEqual(user, None)
def testAuthenticateUserBadPassword(self):
user = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = "bad" + settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password="bad" + settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
self.assertEqual(user, None)
def testRepeatedUserAuthenticationDoestRecreateUsers(self):
user_1 = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
user_2 = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
# Ensure that the user isn't recreated on second access.
self.assertEqual(user_1.pk, user_2.pk)
@@ -97,8 +97,8 @@ class TestLdap(TestCase):
def testAuthenticateWithTLS(self):
with self.settings(LDAP_AUTH_USE_TLS=True):
user = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
self.assertIsInstance(user, User)
self.assertEqual(user.username, settings.LDAP_AUTH_TEST_USER_USERNAME)
@@ -128,7 +128,7 @@ class TestLdap(TestCase):
def testPromoteUser(self):
user = User.objects.create(
- username = "test",
+ username="test",
)
self.assertFalse(user.is_staff)
self.assertFalse(user.is_superuser)
@@ -139,7 +139,7 @@ class TestLdap(TestCase):
self.assertTrue(user.is_superuser)
def testPromoteMissingUser(self):
- with self.assertRaises(CommandError, msg="User with username missing_user does not exist") as cm:
+ with self.assertRaises(CommandError, msg="User with username missing_user does not exist"):
call_command("ldap_promote", "missing_user", verbosity=0)
def testSyncUserRelations(self):
@@ -150,7 +150,6 @@ class TestLdap(TestCase):
self.assertEqual(user.username, User.objects.get(pk=user.id).username)
# save all groups
self.assertIn('cn', data)
- groups = list()
ldap_groups = list(data.get('memberOf', ()))
ldap_groups.append('default_group')
for group in ldap_groups:
@@ -158,8 +157,8 @@ class TestLdap(TestCase):
with self.settings(LDAP_AUTH_SYNC_USER_RELATIONS=check_sync_user_relation):
user = authenticate(
- username = settings.LDAP_AUTH_TEST_USER_USERNAME,
- password = settings.LDAP_AUTH_TEST_USER_PASSWORD,
+ username=settings.LDAP_AUTH_TEST_USER_USERNAME,
+ password=settings.LDAP_AUTH_TEST_USER_PASSWORD,
)
self.assertIsInstance(user, User)
self.assertGreaterEqual(user.groups.count(), 1)
diff --git a/django_python3_ldap/utils.py b/django_python3_ldap/utils.py
index 24029b6..0fc6b1a 100644
--- a/django_python3_ldap/utils.py
+++ b/django_python3_ldap/utils.py
@@ -2,8 +2,8 @@
Some useful LDAP utilities.
"""
-import re, binascii
-
+import re
+import binascii
from django.contrib.auth.hashers import make_password
from django.utils.encoding import force_text
from django.utils.module_loading import import_string
@@ -25,7 +25,11 @@ def clean_ldap_name(name):
Transforms the given name into a form that
won't interfere with LDAP queries.
"""
- return re.sub(r'[^a-zA-Z0-9 _\-.@]', lambda c: "\\" + force_text(binascii.hexlify(c.group(0).encode("latin-1", errors="ignore"))).upper(), force_text(name))
+ return re.sub(
+ r'[^a-zA-Z0-9 _\-.@]',
+ lambda c: "\\" + force_text(binascii.hexlify(c.group(0).encode("latin-1", errors="ignore"))).upper(),
+ force_text(name),
+ )
def convert_model_fields_to_ldap_fields(model_fields):
@@ -45,10 +49,10 @@ def format_search_filter(model_fields):
Creates an LDAP search filter for the given set of model
fields.
"""
- ldap_fields = convert_model_fields_to_ldap_fields(model_fields);
+ ldap_fields = convert_model_fields_to_ldap_fields(model_fields)
ldap_fields["objectClass"] = settings.LDAP_AUTH_OBJECT_CLASS
search_filters = import_func(settings.LDAP_AUTH_FORMAT_SEARCH_FILTERS)(ldap_fields)
- return "(&{})".format("".join(search_filters));
+ return "(&{})".format("".join(search_filters))
def clean_user_data(model_fields):
@@ -67,15 +71,15 @@ def format_username_openldap(model_fields):
binding to an OpenLDAP server.
"""
return "{user_identifier},{search_base}".format(
- user_identifier = ",".join(
+ user_identifier=",".join(
"{attribute_name}={field_value}".format(
- attribute_name = clean_ldap_name(field_name),
- field_value = clean_ldap_name(field_value),
+ attribute_name=clean_ldap_name(field_name),
+ field_value=clean_ldap_name(field_value),
)
for field_name, field_value
in convert_model_fields_to_ldap_fields(model_fields).items()
),
- search_base = settings.LDAP_AUTH_SEARCH_BASE,
+ search_base=settings.LDAP_AUTH_SEARCH_BASE,
)
@@ -87,8 +91,8 @@ def format_username_active_directory(model_fields):
username = model_fields["username"]
if settings.LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN:
username = "{domain}\\{username}".format(
- domain = settings.LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN,
- username = username,
+ domain=settings.LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN,
+ username=username,
)
return username
@@ -101,8 +105,8 @@ def sync_user_relations(user, ldap_attributes):
def format_search_filters(ldap_fields):
return [
"({attribute_name}={field_value})".format(
- attribute_name = clean_ldap_name(field_name),
- field_value = clean_ldap_name(field_value),
+ attribute_name=clean_ldap_name(field_name),
+ field_value=clean_ldap_name(field_value),
)
for field_name, field_value
in ldap_fields.items()
diff --git a/setup.py b/setup.py
index 6d2ac2f..df02bcd 100644
--- a/setup.py
+++ b/setup.py
@@ -7,19 +7,19 @@ version_str = ".".join(str(n) for n in __version__)
setup(
- name = "django-python3-ldap",
- version = version_str,
- license = "BSD",
- description = "Django LDAP user authentication backend for Python 3.",
- author = "Dave Hall",
- author_email = "dave at etianen.com",
- url = "https://github.com/etianen/django-python3-ldap",
- packages = find_packages(),
- install_requires = [
- "django>=1.7",
- "ldap3>=0.9.8.4,<=1.4.0,!=0.9.9.2",
+ name="django-python3-ldap",
+ version=version_str,
+ license="BSD",
+ description="Django LDAP user authentication backend for Python 3.",
+ author="Dave Hall",
+ author_email="dave at etianen.com",
+ url="https://github.com/etianen/django-python3-ldap",
+ packages=find_packages(),
+ install_requires=[
+ "django>=1.8",
+ "ldap3==2.2.0",
],
- classifiers = [
+ classifiers=[
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Intended Audience :: Developers",
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-python3-ldap.git
More information about the Python-modules-commits
mailing list