Code

Ticket #6085: 6085.patch

File 6085.patch, 10.6 KB (added by Honza_Kral, 6 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): 
    171171        """ 
    172172        Handles the "user change password" task 
    173173        """ 
    174         from django.contrib.admin.views.auth import user_change_password 
     174        from django.contrib.auth.views import user_change_password 
    175175        return user_change_password(request, id) 
    176176 
    177177    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_required 
    2 from django.contrib.auth.forms import UserCreationForm, AdminPasswordChangeForm 
    3 from django.contrib.auth.models import User 
    4 from django.core.exceptions import PermissionDenied 
    5 from django import oldforms, template 
    6 from django.shortcuts import render_to_response, get_object_or_404 
    7 from django.http import HttpResponseRedirect 
    8 from django.utils.html import escape 
    9 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 PermissionDenied 
    14     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 PermissionDenied 
    50     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
    - +  
     1from django.contrib.auth.forms import UserCreationForm 
     2from django.contrib.auth.models import User, Group 
     3from django.core.exceptions import PermissionDenied 
     4from django import oldforms, template 
     5from django.shortcuts import render_to_response 
     6from django.http import HttpResponseRedirect 
     7from django.utils.translation import ugettext, ugettext_lazy as _ 
     8from django.contrib import admin 
     9 
     10class GroupAdmin(admin.ModelAdmin): 
     11    search_fields = ('name',) 
     12    filter_horizontal = ('permissions',) 
     13 
     14class 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 
     62admin.site.register(Group, GroupAdmin) 
     63admin.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): 
    366366        return False 
    367367 
    368368# 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) 
     369from 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  
    11from django.contrib.auth.forms import AuthenticationForm 
    2 from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm 
     2from django.contrib.auth.forms import PasswordResetForm, PasswordChangeForm, AdminPasswordChangeForm 
     3from django.core.exceptions import PermissionDenied 
    34from django import oldforms 
    45from django.shortcuts import render_to_response 
    56from django.template import RequestContext 
    password_change = login_required(password_change) 
    9798 
    9899def password_change_done(request, template_name='registration/password_change_done.html'): 
    99100    return render_to_response(template_name, context_instance=RequestContext(request)) 
     101 
     102def 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))