diff --git a/apps/common/forms.py b/apps/common/forms.py index 1f6644cc1c..b34bf101a5 100644 --- a/apps/common/forms.py +++ b/apps/common/forms.py @@ -122,7 +122,7 @@ class UserForm(forms.ModelForm): """ class Meta: model = User - fields = ('first_name', 'last_name') + fields = ('username', 'first_name', 'last_name', 'email') class EmailAuthenticationForm(AuthenticationForm): diff --git a/apps/common/urls.py b/apps/common/urls.py index 844b490a50..2a74759a75 100644 --- a/apps/common/urls.py +++ b/apps/common/urls.py @@ -12,12 +12,12 @@ urlpatterns = patterns('common.views', url(r'^user/edit/$', 'current_user_edit', (), 'current_user_edit'), url(r'^login/$', 'login_view', (), name='login_view'), + url(r'^password/change/$', 'password_change_view', (), name='password_change_view'), ) urlpatterns += patterns('', url(r'^logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}, name='logout_view'), - url(r'^password/change/$', 'django.contrib.auth.views.password_change', {'template_name': 'password_change_form.html', 'post_change_redirect': '/password/change/done/'}, name='password_change_view'), url(r'^password/reset/$', 'django.contrib.auth.views.password_reset', {'email_template_name': 'password_reset_email.html', 'template_name': 'password_reset_form.html', 'post_reset_redirect': '/password/reset/done'}, name='password_reset_view'), url(r'^password/reset/confirm/(?P[0-9A-Za-z]+)-(?P.+)/$', 'django.contrib.auth.views.password_reset_confirm', {'template_name': 'password_reset_confirm.html', 'post_reset_redirect': '/password/reset/complete/'}, name='password_reset_confirm_view'), url(r'^password/reset/complete/$', 'django.contrib.auth.views.password_reset_complete', {'template_name': 'password_reset_complete.html'}, name='password_reset_complete_view'), diff --git a/apps/common/views.py b/apps/common/views.py index fd5a81f1c8..b823b2b33d 100644 --- a/apps/common/views.py +++ b/apps/common/views.py @@ -11,21 +11,13 @@ from django.core.urlresolvers import reverse from django.utils.http import urlencode from django.contrib.auth.views import login from django.utils.simplejson import dumps, loads +from django.contrib.auth.views import password_change from .forms import (ChoiceForm, UserForm, UserForm_view, LicenseForm, EmailAuthenticationForm) from .conf.settings import LOGIN_METHOD -def password_change_done(request): - """ - View called when the new user password has been accepted - """ - - messages.success(request, _(u'Your password has been successfully changed.')) - return redirect('home') - - def multi_object_action_view(request): """ Proxy view called first when using a multi object action, which @@ -227,3 +219,26 @@ def license_view(request): 'title': _(u'License'), }, context_instance=RequestContext(request)) + + +def password_change_view(request): + """ + Password change wrapper for better control + """ + context={'title': _(u'Current user password change')} + + return password_change( + request, + extra_context=context, + template_name='password_change_form.html', + post_change_redirect=reverse('password_change_done'), + ) + + +def password_change_done(request): + """ + View called when the new user password has been accepted + """ + + messages.success(request, _(u'Your password has been successfully changed.')) + return redirect('current_user_details') diff --git a/apps/user_management/views.py b/apps/user_management/views.py index f859a6940f..743c723a35 100644 --- a/apps/user_management/views.py +++ b/apps/user_management/views.py @@ -211,6 +211,7 @@ def user_multiple_set_password(request): ) +# Group views def group_list(request): Permission.objects.check_permissions(request.user, [PERMISSION_GROUP_VIEW])