diff --git a/fig.yml b/fig.yml
index 0eadd8e..c675b75 100644
--- a/fig.yml
+++ b/fig.yml
@@ -12,7 +12,8 @@ web:
- PYTHONDONTWRITEBYTECODE=1
- DATABASE_URL=postgres://postgres@db/postgres
- DEBUG=True
- - ALLOWED_HOSTS=localhost,127.0.0.1,
+ - ALLOWED_HOSTS=localhost,127.0.0.1
+ - BROWSERID_AUDIENCES='http://127.0.0.1:8000'
- SECRET_KEY=59114b6a-2858-4caf-8878-482a24ee9542
command:
./bin/run-fig.sh
diff --git a/marketpulse/auth/urls.py b/marketpulse/auth/urls.py
new file mode 100644
index 0000000..cb5fcbd
--- /dev/null
+++ b/marketpulse/auth/urls.py
@@ -0,0 +1,7 @@
+from django.conf.urls import patterns, include, url
+
+
+urlpatterns = patterns(
+ '',
+ url(r'', include('django_browserid.urls'))
+)
diff --git a/marketpulse/base/templates/base.html b/marketpulse/base/templates/base.html
index f7035dd..21e0161 100644
--- a/marketpulse/base/templates/base.html
+++ b/marketpulse/base/templates/base.html
@@ -15,8 +15,9 @@
-
-
+
+
+ {{ browserid_css() }}
{% block css %}
{% endblock %}
@@ -33,6 +34,13 @@
+ {{ browserid_info() }}
+ {% if user.is_authenticated() %}
+ Current user: {{ user.email }}
+ {{ browserid_logout(text='Logout') }}
+ {% else %}
+ {{ browserid_login(text='Login', color='dark') }}
+ {% endif %}
@@ -74,7 +82,9 @@
+ {{ browserid_js() }}
+
{% block js %}
{% endblock %}
diff --git a/marketpulse/settings/base.py b/marketpulse/settings/base.py
index 7a76ae1..6decdcb 100644
--- a/marketpulse/settings/base.py
+++ b/marketpulse/settings/base.py
@@ -46,6 +46,7 @@
'django.contrib.staticfiles',
# Third party apps
+ 'django_browserid',
'django_nose',
'import_export',
@@ -114,9 +115,12 @@
'django.template.loaders.app_directories.Loader',
)
+JINGO_EXCLUDE_APPS = ['browserid', 'admin']
+
# Django-CSP
CSP_DEFAULT_SRC = (
"'self'",
+ 'https://login.persona.org',
'https://*.tiles.mapbox.com',
'https://*.cloudfront.net',
)
@@ -127,6 +131,7 @@
)
CSP_IMG_SRC = (
"'self'",
+ 'data:',
'http://*.mozilla.net',
'https://*.mozilla.net',
'https://*.tiles.mapbox.com',
@@ -137,6 +142,7 @@
'https://www.mozilla.org',
'http://*.mozilla.net',
'https://*.mozilla.net',
+ 'https://login.persona.org',
'https://*.mapbox.com',
)
CSP_STYLE_SRC = (
@@ -154,8 +160,11 @@
# Django-browserid settings
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',
'marketpulse.auth.backend.MozilliansAuthBackend')
+
BROWSERID_VERIFY_CLASS = 'marketpulse.auth.backend.BrowserIDVerify'
-BROWSERID_AUDIENCES = [SITE_URL]
+BROWSERID_AUDIENCES = config('BROWSERID_AUDIENCES', cast=Csv())
+LOGIN_REDIRECT_URL = '/'
+LOGIN_REDIRECT_URL_FAILURE = '/'
# Mozillians.org API settings
MOZILLIANS_API_URL = config('MOZILLIANS_API_URL', default=None)
diff --git a/marketpulse/urls.py b/marketpulse/urls.py
index 9f3155d..5832de0 100644
--- a/marketpulse/urls.py
+++ b/marketpulse/urls.py
@@ -2,6 +2,7 @@
from django.conf.urls import patterns, include, url
from django.contrib import admin
+
import jingo.monkey
@@ -10,7 +11,9 @@
urlpatterns = patterns(
'',
+
# Apps
+ url(r'', include('{0}.auth.urls'.format(settings.PROJECT_MODULE))),
url(r'', include('{0}.main.urls'.format(settings.PROJECT_MODULE), namespace='main')),
# Admin
diff --git a/tox.ini b/tox.ini
index 043d0ae..d4e2c15 100644
--- a/tox.ini
+++ b/tox.ini
@@ -16,6 +16,7 @@ setenv =
ALLOWED_HOSTS=localhost
DATABASE_URL=postgres://postgres@localhost/marketpulse_db
SITE_URL=127.0.0.1:8000
+ BROWSERID_AUDIENCES=http://127.0.0.1:8000
deps =
coverage==3.7.1
commands =