diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-03-09 20:29:00 +0100 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-03-09 20:29:00 +0100 |
| commit | 7339f43c718008394cf5c5119994f956e27bce70 (patch) | |
| tree | 092dfd2a34201f8f729e28867e68d6520e123f7d | |
| parent | 8b67fa755140fb4a6b961dfa97744286b5262a3c (diff) | |
Prevented admin from importing auth.User.
Since we don't enforce order between apps, root packages of contrib apps
cannot import models from unrelated apps.
Fix #22005, refs #21719.
| -rw-r--r-- | django/contrib/admin/sites.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py index 90f160d450..efac3c7521 100644 --- a/django/contrib/admin/sites.py +++ b/django/contrib/admin/sites.py @@ -2,7 +2,6 @@ from functools import update_wrapper from django.http import Http404, HttpResponseRedirect from django.contrib.admin import ModelAdmin, actions from django.contrib.auth import REDIRECT_FIELD_NAME -from django.contrib.auth.views import redirect_to_login from django.views.decorators.csrf import csrf_protect from django.db.models.base import ModelBase from django.apps import apps @@ -195,6 +194,9 @@ class AdminSite(object): if request.path == reverse('admin:logout', current_app=self.name): index_path = reverse('admin:index', current_app=self.name) return HttpResponseRedirect(index_path) + # Inner import to prevent django.contrib.admin (app) from + # importing django.contrib.auth.models.User (unrelated model). + from django.contrib.auth.views import redirect_to_login return redirect_to_login( request.get_full_path(), reverse('admin:login', current_app=self.name) |
