Allow current to edit more details of himself, saner redirection after password change

This commit is contained in:
Roberto Rosario
2012-01-26 22:42:36 -04:00
parent d79e86ae30
commit 30351225f6
4 changed files with 27 additions and 11 deletions

View File

@@ -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):

View File

@@ -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<uidb36>[0-9A-Za-z]+)-(?P<token>.+)/$', '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'),

View File

@@ -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')

View File

@@ -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])