From 8787f8fc2f8eb8098a5ff6644a766cb8689ace3e Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Wed, 21 Jul 2010 00:42:16 -0600 Subject: [PATCH] Added pinax.apps.account.auth_backends.AuthenticationBackend and added to all projects --- pinax/apps/account/auth_backends.py | 25 ++++++++++++------- pinax/projects/account_project/settings.py | 11 +++----- pinax/projects/basic_project/settings.py | 11 +++----- .../projects/cms_company_project/settings.py | 11 +++----- .../cms_holidayhouse_project/settings.py | 11 +++----- pinax/projects/code_project/settings.py | 11 +++----- pinax/projects/intranet_project/settings.py | 11 +++----- .../projects/private_beta_project/settings.py | 11 +++----- .../projects/sample_group_project/settings.py | 11 +++----- pinax/projects/social_project/settings.py | 11 +++----- 10 files changed, 43 insertions(+), 81 deletions(-) diff --git a/pinax/apps/account/auth_backends.py b/pinax/apps/account/auth_backends.py index 266d8eb5e..e8a9bb850 100644 --- a/pinax/apps/account/auth_backends.py +++ b/pinax/apps/account/auth_backends.py @@ -1,17 +1,24 @@ +from django.conf import settings + from django.contrib.auth.backends import ModelBackend from django.contrib.auth.models import User - -class EmailModelBackend(ModelBackend): - """ - A backend that provides authentication through e-mail instead of username. - """ +class AuthenticationBackend(ModelBackend): - def authenticate(self, email=None, password=None): + def authenticate(self, **credentials): + lookup_params = {} + if settings.ACCOUNT_EMAIL_AUTHENTICATION: + lookup_params["email"] = credentials["email"] + else: + lookup_params["username"] = credentials["username"] try: - user = User.objects.get(email=email) - if user.check_password(password): - return user + user = User.objects.get(**lookup_params) except User.DoesNotExist: return None + else: + if user.check_password(credentials["password"]): + return user + + +EmailModelBackend = AuthenticationBackend \ No newline at end of file diff --git a/pinax/projects/account_project/settings.py b/pinax/projects/account_project/settings.py index 411fdd6d9..937490a29 100644 --- a/pinax/projects/account_project/settings.py +++ b/pinax/projects/account_project/settings.py @@ -168,14 +168,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "what_next" diff --git a/pinax/projects/basic_project/settings.py b/pinax/projects/basic_project/settings.py index fd4b7d3d9..faf5bf916 100644 --- a/pinax/projects/basic_project/settings.py +++ b/pinax/projects/basic_project/settings.py @@ -185,14 +185,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "what_next" diff --git a/pinax/projects/cms_company_project/settings.py b/pinax/projects/cms_company_project/settings.py index b1b57c8c1..bd5ced5b8 100644 --- a/pinax/projects/cms_company_project/settings.py +++ b/pinax/projects/cms_company_project/settings.py @@ -199,14 +199,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] EMAIL_CONFIRMATION_DAYS = 2 EMAIL_DEBUG = DEBUG diff --git a/pinax/projects/cms_holidayhouse_project/settings.py b/pinax/projects/cms_holidayhouse_project/settings.py index 5c3d50868..4ee6a0567 100644 --- a/pinax/projects/cms_holidayhouse_project/settings.py +++ b/pinax/projects/cms_holidayhouse_project/settings.py @@ -199,14 +199,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] EMAIL_CONFIRMATION_DAYS = 2 EMAIL_DEBUG = DEBUG diff --git a/pinax/projects/code_project/settings.py b/pinax/projects/code_project/settings.py index d5ee59882..b2e237cdb 100644 --- a/pinax/projects/code_project/settings.py +++ b/pinax/projects/code_project/settings.py @@ -215,14 +215,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "what_next" diff --git a/pinax/projects/intranet_project/settings.py b/pinax/projects/intranet_project/settings.py index 85f3f4a86..1753daa36 100644 --- a/pinax/projects/intranet_project/settings.py +++ b/pinax/projects/intranet_project/settings.py @@ -210,14 +210,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "home" diff --git a/pinax/projects/private_beta_project/settings.py b/pinax/projects/private_beta_project/settings.py index 4dc81e5a3..04ec05c51 100644 --- a/pinax/projects/private_beta_project/settings.py +++ b/pinax/projects/private_beta_project/settings.py @@ -170,14 +170,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" LOGIN_REDIRECT_URLNAME = "what_next" diff --git a/pinax/projects/sample_group_project/settings.py b/pinax/projects/sample_group_project/settings.py index 4b1c2fd99..eef3ace05 100644 --- a/pinax/projects/sample_group_project/settings.py +++ b/pinax/projects/sample_group_project/settings.py @@ -217,14 +217,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "what_next" diff --git a/pinax/projects/social_project/settings.py b/pinax/projects/social_project/settings.py index 508fc3aae..8d55daee1 100644 --- a/pinax/projects/social_project/settings.py +++ b/pinax/projects/social_project/settings.py @@ -230,14 +230,9 @@ ACCOUNT_EMAIL_AUTHENTICATION = False ACCOUNT_UNIQUE_EMAIL = EMAIL_CONFIRMATION_UNIQUE_EMAIL = False -if ACCOUNT_EMAIL_AUTHENTICATION: - AUTHENTICATION_BACKENDS = [ - "pinax.apps.account.auth_backends.EmailModelBackend", - ] -else: - AUTHENTICATION_BACKENDS = [ - "django.contrib.auth.backends.ModelBackend", - ] +AUTHENTICATION_BACKENDS = [ + "pinax.apps.account.auth_backends.AuthenticationBackend", +] LOGIN_URL = "/account/login/" # @@@ any way this can be a url name? LOGIN_REDIRECT_URLNAME = "what_next"