Skip to main content

A Django middleware that ensures every request has anauthenticated user.

Project description

A middleware that ensures that a request always has an authenticated user.

If the request doesn’t have an authenticated user, it logs in a default user. If the default user doesn’t exist, it is created.

Compatibility

This middleware has been tested with these versions of Django:

  • 1.7
  • 1.8
  • 1.9
  • 1.10
  • master (at the time of the release)

Setup

Install from PyPI:

pip install django_always_authenticated

Add to MIDDLEWARE (MIDDLEWARE_CLASSES for Django <1.10) in settings file:

MIDDLEWARE = (
    ...
    'always_authenticated.middleware.AlwaysAuthenticatedMiddleware',
)

As a security safeguard, the middleware will raise an ImproperlyConfiguredException when running in production mode (DEBUG=False). To run the middleware in production, set ALWAYS_AUTHENTICATED_DEBUG_ONLY to False.

Configuration

This middleware reads these settings:

ALWAYS_AUTHENTICATED_USERNAME

A string with the name of the default user, defaults to 'user'.

ALWAYS_AUTHENTICATED_USER_DEFAULTS

A dict with additional default values to set when creating the user.

ALWAYS_AUTHENTICATED_DEBUG_ONLY

Set to False to allow running with DEBUG=False.

Example project

There is a very single example project that demonstrates the middleware in the directory example_project.

Running Tests

To run the tests, install the requirements and run py.test:

pip install -r requirements.txt
py.test

You can also use tox to run the tests with all supported versions of Python and Django:

pip install tox
tox

Project details


Release history Release notifications

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
django-always-authenticated-0.1.0.tar.gz (2.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page