[Django] #30312: Admin app has too hard a dependency on sessions app

16 views
Skip to first unread message

Django

unread,
Apr 2, 2019, 10:13:40 AM4/2/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-----------------------------------------+------------------------
Reporter: Aarni Koskela | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.2
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-----------------------------------------+------------------------
Since #29695 (371ece2f0682e51f2f796854d3e091827a7cea63), released in 2.2,
the admin app checks whether the `django.contrib.sessions` app is in
`INSTALLED_APPS`.

Some projects may have opted to use a replacement session management app
such as https://github.com/QueraTeam/django-qsessions – the admin app
claims to be incompatible with such a configuration, even if it actually
means "I'm going to need _some_ session management that works like
`django.contrib.sessions`".

Maybe it would be better to get rid of the app check and do what's being
done for various middleware in the checks function anyway, e.g. something
like

{{{
if not
_contains_subclass('django.contrib.sessions.middleware.SessionMiddleware',
settings.MIDDLEWARE):
errors.append(checks.Error(
"'django.contrib.sessions.middleware.SessionMiddleware' must "
"be in MIDDLEWARE in order to use the admin application.",
id='admin.E4XX',
))
}}}

– this would be out-of-the-box compatible with e.g. Qsessions.

The obvious workaround is to just re-add `django.contrib.sessions` back
into `INSTALLED_APPS` which kinda works, but has the mild but unfortunate
side effect of forcibly enabling the
`django.contrib.sessions.models.Session` model and migrations, (re-)adding
a useless `django_session` table into the database upon migration.

--
Ticket URL: <https://code.djangoproject.com/ticket/30312>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Apr 2, 2019, 10:55:44 AM4/2/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------+--------------------------------------

Reporter: Aarni Koskela | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.2
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------

Comment (by Carlton Gibson):

System checks are [https://docs.djangoproject.com/en/2.2/ref/settings#std
:setting-SILENCED_SYSTEM_CHECKS designed to be silenced if not
appropriate]. I'm inclined to think this just such an edge-case at first
glance.

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:1>

Django

unread,
Apr 2, 2019, 10:58:55 AM4/2/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
--------------------------------------+------------------------------------

Reporter: Aarni Koskela | Owner: nobody
Type: Cleanup/optimization | Status: new
Component: contrib.admin | Version: 2.2
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
--------------------------------------+------------------------------------
Changes (by Carlton Gibson):

* type: Bug => Cleanup/optimization
* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:2>

Django

unread,
Apr 3, 2019, 8:00:44 AM4/3/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
Type: | Koskela
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: 2.2

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Aarni Koskela):

* owner: nobody => Aarni Koskela
* status: new => assigned


Comment:

I'll work on a PR, then. :)

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:3>

Django

unread,
Apr 3, 2019, 8:26:15 AM4/3/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
Type: | Koskela
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: 2.2

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Aarni Koskela):

* has_patch: 0 => 1


Comment:

[https://github.com/django/django/pull/11166 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:4>

Django

unread,
Apr 3, 2019, 8:48:39 AM4/3/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
Type: | Koskela
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: 2.2

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 1 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Carlton Gibson):

* needs_better_patch: 0 => 1
* needs_tests: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:5>

Django

unread,
Apr 16, 2019, 7:33:59 AM4/16/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
Type: | Koskela
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: 2.2

Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Aarni Koskela):

* needs_better_patch: 1 => 0
* needs_tests: 1 => 0


Comment:

Patch is ready and waiting for review.

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:6>

Django

unread,
Apr 26, 2019, 2:09:15 AM4/26/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
Type: | Koskela
Cleanup/optimization | Status: assigned
Component: contrib.admin | Version: 2.2
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by felixxm):

* severity: Normal => Release blocker


--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:7>

Django

unread,
Apr 26, 2019, 2:28:38 AM4/26/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
---------------------------------+-----------------------------------------
Reporter: Aarni Koskela | Owner: Aarni Koskela
Type: Bug | Status: assigned
Component: contrib.admin | Version: 2.2

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+-----------------------------------------
Changes (by felixxm):

* type: Cleanup/optimization => Bug


* severity: Normal => Release blocker

Django

unread,
Apr 26, 2019, 3:49:18 AM4/26/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------

Reporter: Aarni Koskela | Owner: Aarni
| Koskela
Type: Bug | Status: assigned
Component: contrib.admin | Version: 2.2
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by felixxm):

* stage: Accepted => Ready for checkin


--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:8>

Django

unread,
Apr 26, 2019, 5:51:53 AM4/26/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
| Koskela
Type: Bug | Status: closed
Component: contrib.admin | Version: 2.2
Severity: Release blocker | Resolution: fixed

Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"efeceba589974b95b35b2e25df86498c96315518" efeceba5]:
{{{
#!CommitTicketReference repository=""
revision="efeceba589974b95b35b2e25df86498c96315518"
Fixed #30312 -- Relaxed admin check from django.contrib.sessions to
SessionMiddleware subclasses.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:9>

Django

unread,
Apr 26, 2019, 5:53:06 AM4/26/19
to django-...@googlegroups.com
#30312: Admin app has too hard a dependency on sessions app
-------------------------------------+-------------------------------------
Reporter: Aarni Koskela | Owner: Aarni
| Koskela
Type: Bug | Status: closed
Component: contrib.admin | Version: 2.2

Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Ready for
| checkin
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Mariusz Felisiak <felisiak.mariusz@…>):

In [changeset:"a4095dadc4b165f615dfc88c6ed1cbba5b5a9844" a4095dad]:
{{{
#!CommitTicketReference repository=""
revision="a4095dadc4b165f615dfc88c6ed1cbba5b5a9844"
[2.2.x] Fixed #30312 -- Relaxed admin check from django.contrib.sessions
to SessionMiddleware subclasses.

Backport of efeceba589974b95b35b2e25df86498c96315518 from master
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/30312#comment:10>

Reply all
Reply to author
Forward
0 new messages