Commit 46068d85 authored by Thomas Tanner's avatar Thomas Tanner Committed by Tim Graham
Browse files

Fixed #22295 -- Replaced permission check for displaying admin user-tools

parent 7a878ca5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ def delete_selected(modeladmin, request, queryset):
        title = _("Are you sure?")

    context = dict(
        modeladmin.admin_site.each_context(),
        modeladmin.admin_site.each_context(request),
        title=title,
        objects_name=objects_name,
        deletable_objects=[deletable_objects],
+4 −4
Original line number Diff line number Diff line
@@ -1461,7 +1461,7 @@ class ModelAdmin(BaseModelAdmin):
        for inline_formset in inline_formsets:
            media = media + inline_formset.media

        context = dict(self.admin_site.each_context(),
        context = dict(self.admin_site.each_context(request),
            title=(_('Add %s') if add else _('Change %s')) % force_text(opts.verbose_name),
            adminform=adminForm,
            object_id=object_id,
@@ -1617,7 +1617,7 @@ class ModelAdmin(BaseModelAdmin):
            'All %(total_count)s selected', cl.result_count)

        context = dict(
            self.admin_site.each_context(),
            self.admin_site.each_context(request),
            module_name=force_text(opts.verbose_name_plural),
            selection_note=_('0 of %(cnt)s selected') % {'cnt': len(cl.result_list)},
            selection_note_all=selection_note_all % {'total_count': cl.result_count},
@@ -1686,7 +1686,7 @@ class ModelAdmin(BaseModelAdmin):
            title = _("Are you sure?")

        context = dict(
            self.admin_site.each_context(),
            self.admin_site.each_context(request),
            title=title,
            object_name=object_name,
            object=obj,
@@ -1720,7 +1720,7 @@ class ModelAdmin(BaseModelAdmin):
            content_type=get_content_type_for_model(model)
        ).select_related().order_by('action_time')

        context = dict(self.admin_site.each_context(),
        context = dict(self.admin_site.each_context(request),
            title=_('Change history: %s') % force_text(obj),
            action_list=action_list,
            module_name=capfirst(force_text(opts.verbose_name_plural)),
+8 −7
Original line number Diff line number Diff line
@@ -272,7 +272,7 @@ class AdminSite(object):
    def urls(self):
        return self.get_urls(), 'admin', self.name

    def each_context(self):
    def each_context(self, request):
        """
        Returns a dictionary of variables to put in the template context for
        *every* page in the admin site.
@@ -281,6 +281,7 @@ class AdminSite(object):
            'site_title': self.site_title,
            'site_header': self.site_header,
            'site_url': self.site_url,
            'has_permission': self.has_permission(request),
        }

    def password_change(self, request, extra_context=None):
@@ -294,7 +295,7 @@ class AdminSite(object):
            'current_app': self.name,
            'password_change_form': AdminPasswordChangeForm,
            'post_change_redirect': url,
            'extra_context': dict(self.each_context(), **(extra_context or {})),
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_template is not None:
            defaults['template_name'] = self.password_change_template
@@ -307,7 +308,7 @@ class AdminSite(object):
        from django.contrib.auth.views import password_change_done
        defaults = {
            'current_app': self.name,
            'extra_context': dict(self.each_context(), **(extra_context or {})),
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.password_change_done_template is not None:
            defaults['template_name'] = self.password_change_done_template
@@ -336,7 +337,7 @@ class AdminSite(object):
        from django.contrib.auth.views import logout
        defaults = {
            'current_app': self.name,
            'extra_context': dict(self.each_context(), **(extra_context or {})),
            'extra_context': dict(self.each_context(request), **(extra_context or {})),
        }
        if self.logout_template is not None:
            defaults['template_name'] = self.logout_template
@@ -357,7 +358,7 @@ class AdminSite(object):
        # it cannot import models from other applications at the module level,
        # and django.contrib.admin.forms eventually imports User.
        from django.contrib.admin.forms import AdminAuthenticationForm
        context = dict(self.each_context(),
        context = dict(self.each_context(request),
            title=_('Log in'),
            app_path=request.get_full_path(),
        )
@@ -431,7 +432,7 @@ class AdminSite(object):
            app['models'].sort(key=lambda x: x['name'])

        context = dict(
            self.each_context(),
            self.each_context(request),
            title=self.index_title,
            app_list=app_list,
        )
@@ -489,7 +490,7 @@ class AdminSite(object):
            raise Http404('The requested admin page does not exist.')
        # Sort the models alphabetically within each app.
        app_dict['models'].sort(key=lambda x: x['name'])
        context = dict(self.each_context(),
        context = dict(self.each_context(request),
            title=_('%(app)s administration') % {'app': app_name},
            app_list=[app_dict],
            app_label=app_label,
+8 −4
Original line number Diff line number Diff line
@@ -24,7 +24,8 @@
        <div id="branding">
        {% block branding %}{% endblock %}
        </div>
        {% if user.is_active and user.is_staff %}
        {% block usertools %}
        {% if has_permission %}
        <div id="user-tools">
            {% block welcome-msg %}
                {% trans 'Welcome,' %}
@@ -34,10 +35,12 @@
                {% if site_url %}
                    <a href="{{ site_url }}">{% trans 'View site' %}</a> /
                {% endif %}
                {% if user.is_active and user.is_staff %}
                    {% url 'django-admindocs-docroot' as docsroot %}
                    {% if docsroot %}
                        <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
                    {% endif %}
                {% endif %}
                {% if user.has_usable_password %}
                <a href="{% url 'admin:password_change' %}">{% trans 'Change password' %}</a> /
                {% endif %}
@@ -45,6 +48,7 @@
            {% endblock %}
        </div>
        {% endif %}
        {% endblock %}
        {% block nav-global %}{% endblock %}
    </div>
    <!-- END Header -->
+2 −0
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@

{% block bodyclass %}{{ block.super }} login{% endblock %}

{% block usertools %}{% endblock %}

{% block nav-global %}{% endblock %}

{% block content_title %}{% endblock %}
Loading