From: yomguy Date: Thu, 31 Mar 2011 15:33:09 +0000 (+0200) Subject: complete account registration and password handling X-Git-Tag: 1.1~301 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=128b571832cd2f386823f40a7baa212bfad129c8;p=telemeta.git complete account registration and password handling --- diff --git a/telemeta/locale/fr/LC_MESSAGES/django.mo b/telemeta/locale/fr/LC_MESSAGES/django.mo index 1519873d..12888708 100644 Binary files a/telemeta/locale/fr/LC_MESSAGES/django.mo and b/telemeta/locale/fr/LC_MESSAGES/django.mo differ diff --git a/telemeta/locale/fr/LC_MESSAGES/django.po b/telemeta/locale/fr/LC_MESSAGES/django.po index d3591816..6e5b553b 100644 --- a/telemeta/locale/fr/LC_MESSAGES/django.po +++ b/telemeta/locale/fr/LC_MESSAGES/django.po @@ -884,3 +884,7 @@ msgstr "Statut super-utilisateur" #: templates/telemeta_default/profile_detail.html:21 msgid "Last login" msgstr "Dernière connexion" + +#: templates/telemeta_default/login.html:21 +msgid "Password forgotten" +msgstr "Mot de passe oublié" diff --git a/telemeta/templates/telemeta/registration/logged_out.html b/telemeta/templates/telemeta/registration/logged_out.html new file mode 100644 index 00000000..12e792ac --- /dev/null +++ b/telemeta/templates/telemeta/registration/logged_out.html @@ -0,0 +1,12 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block content %} + +

{% trans "Thanks for spending some quality time with the Web site today." %}

+ +

{% trans 'Log in again' %}

+ +{% endblock %} diff --git a/telemeta/templates/telemeta/registration/password_change_done.html b/telemeta/templates/telemeta/registration/password_change_done.html new file mode 100644 index 00000000..63bc2191 --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_change_done.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_change_done.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_change_form.html b/telemeta/templates/telemeta/registration/password_change_form.html new file mode 100644 index 00000000..c2f232c2 --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_change_form.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_change_form.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_reset_complete.html b/telemeta/templates/telemeta/registration/password_reset_complete.html new file mode 100644 index 00000000..069712c9 --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_reset_complete.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_reset_complete.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_reset_confirm.html b/telemeta/templates/telemeta/registration/password_reset_confirm.html new file mode 100644 index 00000000..cf76fccf --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_reset_confirm.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_reset_confirm.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_reset_done.html b/telemeta/templates/telemeta/registration/password_reset_done.html new file mode 100644 index 00000000..d32a6dde --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_reset_done.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_reset_done.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_reset_email.html b/telemeta/templates/telemeta/registration/password_reset_email.html new file mode 100644 index 00000000..7c1c2731 --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_reset_email.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_reset_email.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta/registration/password_reset_form.html b/telemeta/templates/telemeta/registration/password_reset_form.html new file mode 100644 index 00000000..f02a94c9 --- /dev/null +++ b/telemeta/templates/telemeta/registration/password_reset_form.html @@ -0,0 +1 @@ +{% extends "telemeta_default/registration/password_reset_form.html" %} \ No newline at end of file diff --git a/telemeta/templates/telemeta_default/login.html b/telemeta/templates/telemeta_default/login.html index 6997ae68..ff3d92a0 100644 --- a/telemeta/templates/telemeta_default/login.html +++ b/telemeta/templates/telemeta_default/login.html @@ -3,7 +3,7 @@ {% block content %}

{% trans "User authentication" %}

- +
{% if form.errors %}

{% trans "Your username and password didn't match. Please try again." %}

{% endif %} @@ -17,10 +17,11 @@ {{ form.password }}

-{% trans "Sign in" %} - +{% trans "Password forgotten" %} ? + {% endblock %} diff --git a/telemeta/templates/telemeta_default/profile_detail.html b/telemeta/templates/telemeta_default/profile_detail.html index 4589484e..437981a1 100644 --- a/telemeta/templates/telemeta_default/profile_detail.html +++ b/telemeta/templates/telemeta_default/profile_detail.html @@ -46,6 +46,7 @@
{% trans "Last login" %}
{{ usr.last_login }}
+ {% trans "Change password" %} {% endblock %} diff --git a/telemeta/templates/telemeta_default/profile_edit.html b/telemeta/templates/telemeta_default/profile_edit.html index 59c40bfb..936f03b2 100644 --- a/telemeta/templates/telemeta_default/profile_edit.html +++ b/telemeta/templates/telemeta_default/profile_edit.html @@ -14,7 +14,7 @@ {% for form in forms %} {% for field in form %} - {% if not field.html_name in hidden_fields %} + {% if not field.html_name in user_hidden_fields %} diff --git a/telemeta/templates/telemeta_default/registration/logged_out.html b/telemeta/templates/telemeta_default/registration/logged_out.html new file mode 100644 index 00000000..12e792ac --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/logged_out.html @@ -0,0 +1,12 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block content %} + +

{% trans "Thanks for spending some quality time with the Web site today." %}

+ +

{% trans 'Log in again' %}

+ +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_change_done.html b/telemeta/templates/telemeta_default/registration/password_change_done.html new file mode 100644 index 00000000..4037fc11 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_change_done.html @@ -0,0 +1,14 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} +{% block userlinks %}{% url django-admindocs-docroot as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %}{% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password change successful' %}{% endblock %} + +{% block content %} + +

{% trans 'Password change successful' %}

+ +

{% trans 'Your password was changed.' %}

+ +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_change_form.html b/telemeta/templates/telemeta_default/registration/password_change_form.html new file mode 100644 index 00000000..f44fb607 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_change_form.html @@ -0,0 +1,52 @@ +{% extends "telemeta/base.html" %} +{% load i18n adminmedia %} +{% block extrastyle %}{{ block.super }}{% endblock %} +{% block userlinks %}{% url django-admindocs-docroot as docsroot %}{% if docsroot %}{% trans 'Documentation' %} / {% endif %} {% trans 'Change password' %} / {% trans 'Log out' %}{% endblock %} +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password change' %}{% endblock %} + +{% block content %}
+ +
{% csrf_token %} +
+{% if form.errors %} +

+ {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} +

+{% endif %} + +

{% trans 'Password change' %}

+ +

{% 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." %}

+ +
+ +
+ {{ form.old_password.errors }} + {{ form.old_password }} +
+ +
+ {{ form.new_password1.errors }} + {{ form.new_password1 }} +
+ +
+{{ form.new_password2.errors }} + {{ form.new_password2 }} +
+ +
+ +
+ + + +
+
+ +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_reset_complete.html b/telemeta/templates/telemeta_default/registration/password_reset_complete.html new file mode 100644 index 00000000..140b8174 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_reset_complete.html @@ -0,0 +1,16 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password reset complete' %}{% endblock %} + +{% block content %} + +

{% trans 'Password reset complete' %}

+ +

{% trans "Your password has been set. You may go ahead and log in now." %}

+ +

{% trans 'Log in' %}

+ +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_reset_confirm.html b/telemeta/templates/telemeta_default/registration/password_reset_confirm.html new file mode 100644 index 00000000..347df5a0 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_reset_confirm.html @@ -0,0 +1,32 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password reset' %}{% endblock %} + +{% block content %} + +{% if validlink %} + +

{% trans 'Enter new password' %}

+ +

{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}

+ +{% csrf_token %} +{{ form.new_password1.errors }} +

{{ form.new_password1 }}

+{{ form.new_password2.errors }} +

{{ form.new_password2 }}

+

{% trans 'Change my password' %}

+ + +{% else %} + +

{% trans 'Password reset unsuccessful' %}

+ +

{% trans "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." %}

+ +{% endif %} + +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_reset_done.html b/telemeta/templates/telemeta_default/registration/password_reset_done.html new file mode 100644 index 00000000..cc776025 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_reset_done.html @@ -0,0 +1,14 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans 'Password reset successful' %}{% endblock %} + +{% block content %} + +

{% trans 'Password reset successful' %}

+ +

{% trans "We've e-mailed you instructions for setting your password to the e-mail address you submitted. You should be receiving it shortly." %}

+ +{% endblock %} diff --git a/telemeta/templates/telemeta_default/registration/password_reset_email.html b/telemeta/templates/telemeta_default/registration/password_reset_email.html new file mode 100644 index 00000000..3b786ac4 --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_reset_email.html @@ -0,0 +1,15 @@ +{% load i18n %}{% autoescape off %} +{% trans "You're receiving this e-mail because you requested a password reset" %} +{% blocktrans %}for your user account at {{ site_name }}{% endblocktrans %}. + +{% trans "Please go to the following page and choose a new password:" %} +{% block reset_link %} +{{ protocol }}://{{ domain }}{% url telemeta-password-reset-confirm uidb36=uid token=token %} +{% endblock %} +{% trans "Your username, in case you've forgotten:" %} {{ user.username }} + +{% trans "Thanks for using our site!" %} + +{% blocktrans %}The {{ site_name }} team{% endblocktrans %} + +{% endautoescape %} diff --git a/telemeta/templates/telemeta_default/registration/password_reset_form.html b/telemeta/templates/telemeta_default/registration/password_reset_form.html new file mode 100644 index 00000000..9003af5e --- /dev/null +++ b/telemeta/templates/telemeta_default/registration/password_reset_form.html @@ -0,0 +1,19 @@ +{% extends "telemeta/base.html" %} +{% load i18n %} + +{% block breadcrumbs %}{% endblock %} + +{% block title %}{% trans "Password reset" %}{% endblock %} + +{% block content %} + +

{% trans "Password reset" %}

+ +

{% trans "Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one." %}

+ +{% csrf_token %} +{{ form.email.errors }} +

{{ form.email }} {% trans 'Reset my password' %}

+ + +{% endblock %} diff --git a/telemeta/urls.py b/telemeta/urls.py index 5b3aefe8..500aa278 100644 --- a/telemeta/urls.py +++ b/telemeta/urls.py @@ -215,11 +215,21 @@ urlpatterns = patterns('', url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'telemeta/login.html'}, name="telemeta-login"), url(r'^logout/$', web_view.logout, name="telemeta-logout"), - + # Profile url(r'^accounts/(?P[A-Za-z0-9._-]+)/profile/$', web_view.profile_detail, name="telemeta-profile-detail"), url(r'^accounts/(?P[A-Za-z0-9._-]+)/profile/edit/$', web_view.profile_edit, name="telemeta-profile-edit"), + # Registration + url(r'^accounts/password_change/$', 'django.contrib.auth.views.password_change', {'template_name': 'telemeta/registration/password_change_form.html'}, name="telemeta-password-change"), + url(r'^accounts/password_change_done/$', 'django.contrib.auth.views.password_change_done', {'template_name': 'telemeta/registration/password_change_done.html'}, name="telemeta-password-change-done"), + + url(r'^accounts/password_reset/$', 'django.contrib.auth.views.password_reset', {'template_name': 'telemeta/registration/password_reset_form.html', 'email_template_name': 'telemeta/registration/password_reset_email.html'}, name="telemeta-password-reset"), + url(r'^accounts/password_reset_done/$', 'django.contrib.auth.views.password_reset_done', {'template_name': 'telemeta/registration/password_reset_done.html'}, name="telemeta-password-reset-done"), + url(r'^accounts/password_reset_confirm/(?P[A-Za-z0-9._-]+)/(?P[A-Za-z0-9._-]+)/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name': 'telemeta/registration/password_reset_confirm.html'}, name="telemeta-password-reset-confirm"), + url(r'^accounts/password_reset_complete/$', 'django.contrib.auth.views.password_reset_complete', {'template_name': 'telemeta/registration/password_reset_complete.html'}, name="telemeta-password-reset-complete"), + url(r'^accounts/password_reset_complete/$', 'django.contrib.auth.views.password_reset_complete', {'template_name': 'telemeta/registration/password_reset_complete.html'}, name="telemeta-password-reset-complete"), + # JSON RPC url(r'^json/browse/', 'jsonrpc.views.browse', name="jsonrpc_browser"), # for the graphical browser/web console only, omissible url(r'^json/$', jsonrpc_site.dispatch, name='jsonrpc_mountpoint'), diff --git a/telemeta/web/base.py b/telemeta/web/base.py index 97274769..90131cca 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -1092,7 +1092,7 @@ class WebView(object): def profile_edit(self, request, username, template='telemeta/profile_edit.html'): if request.user.is_staff: - user_hidden_fields = [] + user_hidden_fields = ['profile-user', 'user-password', 'user-last_login', 'user-date_joined'] else: user_hidden_fields = ['user-username', 'user-is_staff', 'profile-user', 'user-is_active', 'user-password', 'user-last_login', 'user-date_joined', 'user-groups', @@ -1118,5 +1118,5 @@ class WebView(object): user_form = UserChangeForm(instance=user, prefix='user') profile_form = UserProfileForm(instance=profile, prefix='profile') forms = [user_form, profile_form] - return render(request, template, {'forms': forms, 'usr': user, 'hidden_fields': user_hidden_fields}) + return render(request, template, {'forms': forms, 'usr': user, 'user_hidden_fields': user_hidden_fields})
{{ field.errors }}
{% trans field.label_tag %} : {{ field }}