summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-03-09 20:29:00 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-03-09 20:29:00 +0100
commit7339f43c718008394cf5c5119994f956e27bce70 (patch)
tree092dfd2a34201f8f729e28867e68d6520e123f7d
parent8b67fa755140fb4a6b961dfa97744286b5262a3c (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.py4
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)