diff --git a/fixtures/sitetree.json b/fixtures/sitetree.json index 4226cb7..5671dcf 100644 --- a/fixtures/sitetree.json +++ b/fixtures/sitetree.json @@ -349,8 +349,8 @@ "fields": { "title": "Log In", "hint": "", - "url": "/account/login/", - "urlaspattern": false, + "url": "nbpy_login", + "urlaspattern": true, "tree": 1, "hidden": false, "alias": null, diff --git a/pinaxcon/account_hooks.py b/pinaxcon/account_hooks.py new file mode 100644 index 0000000..6f2b0dd --- /dev/null +++ b/pinaxcon/account_hooks.py @@ -0,0 +1,25 @@ +from account import hooks +from django.contrib.auth.models import User + + +class BetterAccountHookSet(hooks.AccountDefaultHookSet): + + def get_user_credentials(self, form, identifier_field): + username = form.cleaned_data[identifier_field] + + # Find an actual username so we can authenticate + print username, + if identifier_field == "email": + username = self.get_username_by_email(username) + print username, + + return { + "username": username, + "password": form.cleaned_data["password"], + } + + def get_username_by_email(self, email): + try: + return User.objects.get(email=email).username + except User.DoesNotExist: + return None diff --git a/pinaxcon/settings.py b/pinaxcon/settings.py index 2d744d5..bd977b2 100644 --- a/pinaxcon/settings.py +++ b/pinaxcon/settings.py @@ -15,7 +15,7 @@ DATABASES = { } } -UNPREPEND_WWW = bool(os.environ.get("DJANGO_UNPREPEND_WWW", False)) +UNPREPEND_WWW = bool(int(os.environ.get("DJANGO_UNPREPEND_WWW", "0"))) # HEROKU: Update database configuration with $DATABASE_URL. import dj_database_url @@ -258,17 +258,21 @@ EMAIL_HOST = os.environ.get("DJANGO_EMAIL_HOST", "") EMAIL_PORT = int(os.environ.get("DJANGO_EMAIL_PORT", 25)) EMAIL_HOST_USER = os.environ.get("DJANGO_EMAIL_HOST_USER", "") EMAIL_HOST_PASSWORD = os.environ.get("DJANGO_EMAIL_HOST_PASSWORD", "") -EMAIL_USE_TLS = bool(os.environ.get("DJANGO_EMAIL_USE_TLS", False)) -EMAIL_USE_SSL = bool(os.environ.get("DJANGO_EMAIL_USE_SSL", False)) +EMAIL_USE_TLS = bool(int(os.environ.get("DJANGO_EMAIL_USE_TLS", "0"))) +EMAIL_USE_SSL = bool(int(os.environ.get("DJANGO_EMAIL_USE_SSL", "0"))) + +ACCOUNT_LOGIN_URL = "nbpy_login" +LOGIN_URL = "nbpy_login" # We need to explicitly switch on signups. -ACCOUNT_OPEN_SIGNUP = bool(os.environ.get("DJANGO_ACCOUNT_OPEN_SIGNUP", False)) +ACCOUNT_OPEN_SIGNUP = bool(int(os.environ.get("DJANGO_ACCOUNT_OPEN_SIGNUP", "0"))) ACCOUNT_EMAIL_UNIQUE = True ACCOUNT_EMAIL_CONFIRMATION_REQUIRED = False if DEBUG else True -ACCOUNT_LOGIN_REDIRECT_URL = "home" +ACCOUNT_LOGIN_REDIRECT_URL = "dashboard" ACCOUNT_LOGOUT_REDIRECT_URL = "home" ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 2 ACCOUNT_USE_AUTH_AUTHENTICATE = True +ACCOUNT_HOOKSET = "pinaxcon.account_hooks.BetterAccountHookSet" AUTHENTICATION_BACKENDS = [ "symposion.teams.backends.TeamPermissionsBackend", diff --git a/pinaxcon/templates/account_login.html b/pinaxcon/templates/account_login.html new file mode 100644 index 0000000..a058d0c --- /dev/null +++ b/pinaxcon/templates/account_login.html @@ -0,0 +1,59 @@ +{% extends "page_with_title_and_lede.html" %} + +{% load bootstrap %} +{% load i18n %} + +{% block head_title %}Log In{% endblock %} + +{% block heading %}Log In or Sign Up{% endblock %} + +{% block body_class %}login{% endblock %} + +{% block content %} + +