Skip to main content

Django sessions with a foreign key to the user

Project description

Build Status Test Coverage PyPI

Django includes excellent built-in sessions, however all the data is hidden away into base64 encoded data. This makes it very difficult to run a query on all active sessions for a particular user. django-user-sessions fixes this and makes session objects a first class citizen like other ORM objects.

Also, have a look at the online example app, hosted by Heroku. It also contains the package django-two-factor-auth, but that application is not a dependency for this package. Also have a look at the bundled example templates and views to see how you can integrate the application into your project.

Compatible with Django 1.4, 1.5, 1.6 and 1.7 on Python 2.6, 2.7, 3.2, 3.3 and 3.4. Documentation is available at readthedocs.org.

Features

To get the list of a user’s sessions:

user.session_set.filter(expire_date__gt=now())

Or logout the user everywhere:

user.session_set.all().delete()

The user’s IP address and user agent are also stored on the session. This allows to show a list of active sessions to the user in the admin:

http://i.imgur.com/YV9Nx3f.png

And also in a custom layout:

http://i.imgur.com/d7kZtr9.png

Installation

  1. pip install django-user-sessions

  2. In INSTALLED_APPS replace 'django.contrib.sessions' with 'user_sessions'.

  3. In MIDDLEWARE_CLASSES replace 'django.contrib.sessions.middleware.SessionMiddleware' with 'user_sessions.middleware.SessionMiddleware'.

  4. Add SESSION_ENGINE = 'user_sessions.backends.db'.

  5. Add url(r'', include('user_sessions.urls', 'user_sessions')), to your urls.py.

  6. Run python manage.py syncdb (or migrate) and browse to /account/sessions/.

GeoIP

You need to setup GeoIP for the location detection to work. See the Django documentation on installing GeoIP.

Contribute

  • Fork the repository on GitHub and start hacking.

  • Run the tests.

  • Send a pull request with your changes.

  • Provide a translation using Transifex.

License

This project is licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-user-sessions-1.0.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

django_user_sessions-1.0.0-py2.py3-none-any.whl (33.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-user-sessions-1.0.0.tar.gz.

File metadata

File hashes

Hashes for django-user-sessions-1.0.0.tar.gz
Algorithm Hash digest
SHA256 91f5a5627993ce375428b6aa14580fe690214a3d2ce055ee5c48bba8bac162fd
MD5 5c62aa6739d82716fcbd0bac7e7b40c2
BLAKE2b-256 072e5e5fb771fe2de37bbe2211b4f1c16110a6b3c0ff912127d2f79c3234524b

See more details on using hashes here.

File details

Details for the file django_user_sessions-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_user_sessions-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3d8b90302478a8bdef91bcc6ebbe7e4b1daaca8971ca12255460aa9a2f1c2443
MD5 278ab943ac872f5fdcda7a402a505416
BLAKE2b-256 5390c1e1557432db5807a92d856c9737103cc20b3842db0fd27dc8190a26b396

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page