Merge branch 'auth-login' of https://github.com/plepe/umap into plepe-auth-login

This commit is contained in:
Yohan Boniface 2016-09-09 20:55:16 +02:00
commit 2437334940
8 changed files with 73 additions and 0 deletions

View file

@ -14,3 +14,8 @@ def version(request):
return { return {
'UMAP_VERSION': __version__ 'UMAP_VERSION': __version__
} }
def authentication(request):
return {
'ENABLE_ACCOUNT_LOGIN': settings.ENABLE_ACCOUNT_LOGIN
}

View file

@ -119,6 +119,7 @@ TEMPLATES = [
'social.apps.django_app.context_processors.login_redirect', 'social.apps.django_app.context_processors.login_redirect',
'umap.context_processors.settings', 'umap.context_processors.settings',
'umap.context_processors.version', 'umap.context_processors.version',
'umap.context_processors.authentication',
) )
} }
}, },
@ -142,6 +143,7 @@ MIDDLEWARE_CLASSES = (
# Auth / security # Auth / security
# ============================================================================= # =============================================================================
ENABLE_ACCOUNT_LOGIN = True
AUTHENTICATION_BACKENDS += ( AUTHENTICATION_BACKENDS += (
) )

View file

@ -37,6 +37,10 @@ COMPRESS_OFFLINE = True
LANGUAGE_CODE = 'en' LANGUAGE_CODE = 'en'
# Set to False if login into django account should not be possible. You can
# administer accounts in the admin interface.
ENABLE_ACCOUNT_LOGIN = True
AUTHENTICATION_BACKENDS = ( AUTHENTICATION_BACKENDS = (
'social.backends.github.GithubOAuth2', 'social.backends.github.GithubOAuth2',
'social.backends.bitbucket.BitbucketOAuth', 'social.backends.bitbucket.BitbucketOAuth',

View file

@ -1,5 +1,27 @@
{% load i18n %} {% load i18n %}
{% if ENABLE_ACCOUNT_LOGIN %}
<h5>{% trans "Please log in with your account" %}</h5>
<div>
{% if form.non_field_errors %}
<ul class='form-errors'>
{% for error in form.non_field_errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
<form id='login_form' action="{% url 'login' %}" method="POST">
{% csrf_token %}
<input type="text" name="username" placeholder="{% trans 'Username' %}" autofocus />
<input type="password" name="password" placeholder="{% trans 'Password' %}" />
<input type="submit" value="{% trans 'Login' %}" />
</form>
</div>
{% endif %}
{% if backends.backends|length %}
<h5>{% trans "Please choose a provider" %}</h5> <h5>{% trans "Please choose a provider" %}</h5>
<div> <div>
<ul class="login-grid block-grid"> <ul class="login-grid block-grid">
@ -10,3 +32,4 @@
{% endfor %} {% endfor %}
</ul> </ul>
</div> </div>
{% endif %}

View file

@ -16,6 +16,9 @@
<li><a href="{% url 'about' %}">{% trans "About" %}</a></li> <li><a href="{% url 'about' %}">{% trans "About" %}</a></li>
<li class="mhide"><a href="{{ UMAP_FEEDBACK_LINK }}">{% trans "Feedback" %}</a></li> <li class="mhide"><a href="{{ UMAP_FEEDBACK_LINK }}">{% trans "Feedback" %}</a></li>
{% if user.is_authenticated %} {% if user.is_authenticated %}
{% if user.has_usable_password %}
<li><a href="{% url 'password_change' %}" >{% trans "Change password" %}</a></li>
{% endif %}
<li><a href="{% url 'logout' %}" class="logout">{% trans "Log out" %}</a></li> <li><a href="{% url 'logout' %}" class="logout">{% trans "Log out" %}</a></li>
{% endif %} {% endif %}
</ul> </ul>

View file

@ -0,0 +1,20 @@
{% extends "umap/content.html" %}
{% load leaflet_storage_tags i18n %}
{% block content %}
<h2 class="section">{% trans "Password change" %}</h2>
<p>{% trans "Please enter your old password, for security's sake, and then enter your new password twice so we can verify you typed it in correctly." %}</p>
<form action="{% url 'password_change' %}" method="POST">
{% csrf_token %}
{{ form.old_password.errors }}
<input type='password' name='old_password' placeholder='{% trans "Old password" %}' autofocus />
{{ form.new_password1.errors }}
<input type='password' name='new_password1' placeholder='{% trans "New password" %}' />
{{ form.new_password2.errors }}
<input type='password' name='new_password2' placeholder='{% trans "New password confirmation" %}' />
<input type='submit' value='{% trans "Change my password" %}' />
</form>
{% endblock content %}

View file

@ -0,0 +1,9 @@
{% extends "umap/content.html" %}
{% load leaflet_storage_tags i18n %}
{% block content %}
<h2 class="section">{% trans "Password change successful" %}</h2>
<p>{% trans "Your password was changed." %}</p>
<p><a href="{% url 'home' %}">Home</a></p>
{% endblock content %}

View file

@ -5,6 +5,7 @@ from django.conf.urls import url, include
from django.contrib.staticfiles.urls import staticfiles_urlpatterns from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.contrib import admin from django.contrib import admin
from django.views.decorators.cache import cache_page from django.views.decorators.cache import cache_page
from django.contrib.auth import views as auth_views
from leaflet_storage.views import MapShortUrl from leaflet_storage.views import MapShortUrl
@ -18,6 +19,12 @@ urlpatterns = [
url(r'^m/(?P<pk>\d+)/$', MapShortUrl.as_view(), name='umap_short_url'), url(r'^m/(?P<pk>\d+)/$', MapShortUrl.as_view(), name='umap_short_url'),
url(r'^ajax-proxy/$', cache_page(180)(views.ajax_proxy), url(r'^ajax-proxy/$', cache_page(180)(views.ajax_proxy),
name='ajax-proxy'), name='ajax-proxy'),
url(r'^change-password/', auth_views.password_change,
{'template_name': 'umap/password_change.html'},
name='password_change'),
url(r'^change-password-done/', auth_views.password_change_done,
{'template_name': 'umap/password_change_done.html'},
name='password_change_done'),
] ]
urlpatterns += i18n_patterns( urlpatterns += i18n_patterns(
url(r'^$', views.home, name="home"), url(r'^$', views.home, name="home"),