Ticket #6085: 6085.patch
File 6085.patch, 10.6 KB (added by , 17 years ago) |
---|
-
django/contrib/admin/sites.py
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 471678f..4e95a06 100644
a b class AdminSite(object): 171 171 """ 172 172 Handles the "user change password" task 173 173 """ 174 from django.contrib.a dmin.views.authimport user_change_password174 from django.contrib.auth.views import user_change_password 175 175 return user_change_password(request, id) 176 176 177 177 def i18n_javascript(self, request): -
deleted file django/contrib/admin/views/auth.py
diff --git a/django/contrib/admin/views/auth.py b/django/contrib/admin/views/auth.py deleted file mode 100644 index 5c0f954..0000000
+ - 1 from django.contrib.admin.views.decorators import staff_member_required2 from django.contrib.auth.forms import UserCreationForm, AdminPasswordChangeForm3 from django.contrib.auth.models import User4 from django.core.exceptions import PermissionDenied5 from django import oldforms, template6 from django.shortcuts import render_to_response, get_object_or_4047 from django.http import HttpResponseRedirect8 from django.utils.html import escape9 from django.utils.translation import ugettext as _10 11 def user_add_stage(request):12 if not request.user.has_perm('auth.change_user'):13 raise PermissionDenied14 manipulator = UserCreationForm()15 if request.method == 'POST':16 new_data = request.POST.copy()17 errors = manipulator.get_validation_errors(new_data)18 if not errors:19 new_user = manipulator.save(new_data)20 msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': 'user', 'obj': new_user}21 if "_addanother" in request.POST:22 request.user.message_set.create(message=msg)23 return HttpResponseRedirect(request.path)24 else:25 request.user.message_set.create(message=msg + ' ' + _("You may edit it again below."))26 return HttpResponseRedirect('../%s/' % new_user.id)27 else:28 errors = new_data = {}29 form = oldforms.FormWrapper(manipulator, new_data, errors)30 return render_to_response('admin/auth/user/add_form.html', {31 'title': _('Add user'),32 'form': form,33 'is_popup': '_popup' in request.REQUEST,34 'add': True,35 'change': False,36 'has_add_permission': True,37 'has_delete_permission': False,38 'has_change_permission': True,39 'has_file_field': False,40 'has_absolute_url': False,41 'auto_populated_fields': (),42 'opts': User._meta,43 'username_help_text': User._meta.get_field('username').help_text,44 }, context_instance=template.RequestContext(request))45 user_add_stage = staff_member_required(user_add_stage)46 47 def user_change_password(request, id):48 if not request.user.has_perm('auth.change_user'):49 raise PermissionDenied50 user = get_object_or_404(User, pk=id)51 manipulator = AdminPasswordChangeForm(user)52 if request.method == 'POST':53 new_data = request.POST.copy()54 errors = manipulator.get_validation_errors(new_data)55 if not errors:56 new_user = manipulator.save(new_data)57 msg = _('Password changed successfully.')58 request.user.message_set.create(message=msg)59 return HttpResponseRedirect('..')60 else:61 errors = new_data = {}62 form = oldforms.FormWrapper(manipulator, new_data, errors)63 return render_to_response('admin/auth/user/change_password.html', {64 'title': _('Change password: %s') % escape(user.username),65 'form': form,66 'is_popup': '_popup' in request.REQUEST,67 'add': True,68 'change': False,69 'has_delete_permission': False,70 'has_change_permission': True,71 'has_absolute_url': False,72 'opts': User._meta,73 'original': user,74 'show_save': True,75 }, context_instance=template.RequestContext(request))76 user_change_password = staff_member_required(user_change_password) -
new file django/contrib/auth/admin.py
diff --git a/django/contrib/auth/admin.py b/django/contrib/auth/admin.py new file mode 100644 index 0000000..97d284c
- + 1 from django.contrib.auth.forms import UserCreationForm 2 from django.contrib.auth.models import User, Group 3 from django.core.exceptions import PermissionDenied 4 from django import oldforms, template 5 from django.shortcuts import render_to_response 6 from django.http import HttpResponseRedirect 7 from django.utils.translation import ugettext, ugettext_lazy as _ 8 from django.contrib import admin 9 10 class GroupAdmin(admin.ModelAdmin): 11 search_fields = ('name',) 12 filter_horizontal = ('permissions',) 13 14 class UserAdmin(admin.ModelAdmin): 15 fieldsets = ( 16 (None, {'fields': ('username', 'password')}), 17 (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}), 18 (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}), 19 (_('Important dates'), {'fields': ('last_login', 'date_joined')}), 20 (_('Groups'), {'fields': ('groups',)}), 21 ) 22 list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff') 23 list_filter = ('is_staff', 'is_superuser') 24 search_fields = ('username', 'first_name', 'last_name', 'email') 25 filter_horizontal = ('user_permissions',) 26 27 def add_view(self, request): 28 if not self.has_change_permission(request): 29 raise PermissionDenied 30 manipulator = UserCreationForm() 31 if request.method == 'POST': 32 new_data = request.POST.copy() 33 errors = manipulator.get_validation_errors(new_data) 34 if not errors: 35 new_user = manipulator.save(new_data) 36 msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': 'user', 'obj': new_user} 37 if "_addanother" in request.POST: 38 request.user.message_set.create(message=msg) 39 return HttpResponseRedirect(request.path) 40 else: 41 request.user.message_set.create(message=msg + ' ' + ugettext("You may edit it again below.")) 42 return HttpResponseRedirect('../%s/' % new_user.id) 43 else: 44 errors = new_data = {} 45 form = oldforms.FormWrapper(manipulator, new_data, errors) 46 return render_to_response('admin/auth/user/add_form.html', { 47 'title': _('Add user'), 48 'form': form, 49 'is_popup': '_popup' in request.REQUEST, 50 'add': True, 51 'change': False, 52 'has_add_permission': True, 53 'has_delete_permission': False, 54 'has_change_permission': True, 55 'has_file_field': False, 56 'has_absolute_url': False, 57 'auto_populated_fields': (), 58 'opts': User._meta, 59 'username_help_text': User._meta.get_field('username').help_text, 60 }, context_instance=template.RequestContext(request)) 61 62 admin.site.register(Group, GroupAdmin) 63 admin.site.register(User, UserAdmin) 64 -
django/contrib/auth/models.py
diff --git a/django/contrib/auth/models.py b/django/contrib/auth/models.py index e694c76..22e0078 100644
a b class AnonymousUser(object): 366 366 return False 367 367 368 368 # Register the admin options for these models. 369 # TODO: Maybe this should live in a separate module admin.py, but how would we 370 # ensure that module was loaded? 371 372 from django.contrib import admin 373 374 class GroupAdmin(admin.ModelAdmin): 375 search_fields = ('name',) 376 filter_horizontal = ('permissions',) 377 378 class UserAdmin(admin.ModelAdmin): 379 fieldsets = ( 380 (None, {'fields': ('username', 'password')}), 381 (_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}), 382 (_('Permissions'), {'fields': ('is_staff', 'is_active', 'is_superuser', 'user_permissions')}), 383 (_('Important dates'), {'fields': ('last_login', 'date_joined')}), 384 (_('Groups'), {'fields': ('groups',)}), 385 ) 386 list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff') 387 list_filter = ('is_staff', 'is_superuser') 388 search_fields = ('username', 'first_name', 'last_name', 'email') 389 filter_horizontal = ('user_permissions',) 390 391 def add_view(self, request): 392 from django.contrib.admin.views.auth import user_add_stage 393 return user_add_stage(request) 394 395 admin.site.register(Group, GroupAdmin) 396 admin.site.register(User, UserAdmin) 369 from django.contrib.auth import admin -
django/contrib/auth/views.py
diff --git a/django/contrib/auth/views.py b/django/contrib/auth/views.py index d3d8b4c..eb66036 100644
a b 1 1 from django.contrib.auth.forms import AuthenticationForm 2 from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 2 from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm, AdminPasswordChangeForm 3 from django.core.exceptions import PermissionDenied 3 4 from django import oldforms 4 5 from django.shortcuts import render_to_response 5 6 from django.template import RequestContext … … password_change = login_required(password_change) 97 98 98 99 def password_change_done(request, template_name='registration/password_change_done.html'): 99 100 return render_to_response(template_name, context_instance=RequestContext(request)) 101 102 def user_change_password(request, id): 103 if not request.user.has_perm('auth.change_user'): 104 raise PermissionDenied 105 user = get_object_or_404(User, pk=id) 106 manipulator = AdminPasswordChangeForm(user) 107 if request.method == 'POST': 108 new_data = request.POST.copy() 109 errors = manipulator.get_validation_errors(new_data) 110 if not errors: 111 new_user = manipulator.save(new_data) 112 msg = _('Password changed successfully.') 113 request.user.message_set.create(message=msg) 114 return HttpResponseRedirect('..') 115 else: 116 errors = new_data = {} 117 form = oldforms.FormWrapper(manipulator, new_data, errors) 118 return render_to_response('admin/auth/user/change_password.html', { 119 'title': _('Change password: %s') % escape(user.username), 120 'form': form, 121 'is_popup': '_popup' in request.REQUEST, 122 'add': True, 123 'change': False, 124 'has_delete_permission': False, 125 'has_change_permission': True, 126 'has_absolute_url': False, 127 'opts': User._meta, 128 'original': user, 129 'show_save': True, 130 }, context_instance=template.RequestContext(request))