Big Red Button
For Django

django-bigredbutton provides a big red "End All Other Sessions" button in a list of a user's current sessions.
Rendered with a light theme:

Rendered with a dark theme:

It can work with multiple session backends, and includes built-in templates for both django-qsessions and django-user-sessions, and dynamically switches between them depending on which one is identified in settings.SESSION_ENGINE
.
Compatibility
- Python: >= 3.11
- Django: >= 4.0
Installation
-
Install the latest version:
pip install django-bigredbutton
poetry add django-bigredbutton
-
Add a session backend, like django-qsessions or django-user-sessions. You can
use the optional packaging shortcuts:
pip install 'django-bigredbutton[qsessions]'
poetry add 'django-bigredbutton[qsessions]'
pip install 'django-bigredbutton[user-sessions]'
poetry add 'django-bigredbutton[user-sessions]'
But there may be additional steps required for each session backend. Refer
to the documentation for your session backend package for their installation
instructions.
-
Add bigredbutton
to INSTALLED_APPS
in your project's settings.py
, and
optionally set BIGREDBUTTON_DELETE_SUCCESS_URL_NAME
to the URL name of
your choice (default: list_sessions
).
-
Register bigredbutton
in your projects root URLConf:
urlpatterns = [
...
path("account/sessions/", include("bigredbutton.urls")),
...
]
Usage
Run Django's development server and navigate to the configured root for
bigredbutton
. The URL in these instructions will be
http://localhost:8000/account/sessions/
.
You will see a list of all of your current sessions. If you have more than one
session (eg: you are signed in on more than one browser or device), you will
see a big red "End All Other Sessions" button. That button will sign you out of
all of your other sessions.
TODO
I have intentionally kept this app very small to minimize the maintenance
burden. But contributions are very welcome!
License
MIT