djangofloor.middleware

HttpRequest and WindowInfo middlewares

Two kinds of middlewares are provided:

The DjangoFloorMiddleware provides several things:

  • authenticates users with the settings.DF_REMOTE_USER_HEADER HTTP header,
  • generates a unique ID and add it to the django.http.request.HttpRequest,
  • add the ‘X-UA-Compatible’ header to the response,
  • if settings.DF_FAKE_AUTHENTICATION_USERNAME and the settings.DEBUG are set, a username is set, for simplifying debug sessions,
  • overrides the ‘REMOTE_ADDR’ META attribute since your project is assumed to be run behind a reverse proxy,
  • if the HTTP_AUTHORIZATION header is set, use it for authenticating users (HTTP basic auth)

The class WindowInfoMiddleware allows to:

class djangofloor.middleware.BasicAuthMiddleware(get_response=None)[source]

Deprecated class, replaced by djangofloor.middleware.DjangoFloorMiddleware

process_request(request)[source]
class djangofloor.middleware.BrowserMiddleware[source]

add attributes related to the browser (currently only the HTTP_USER_AGENT header)

from_dict(window_info, values)[source]
from_request(request, window_info)[source]
get_context(window_info)[source]
new_window_info(window_info)[source]
to_dict(window_info)[source]
class djangofloor.middleware.DjangoAuthMiddleware[source]

handle attributes related to the django.contrib.auth framework

from_dict(window_info, values)[source]
from_request(request, window_info)[source]
get_context(window_info)[source]

provide the same context data as the django.contrib.auth.context_processors:

install_methods(window_info_cls)[source]
new_window_info(window_info)[source]
to_dict(window_info)[source]
class djangofloor.middleware.DjangoFloorMiddleware(get_response=None)[source]

Like django.contrib.auth.middleware.RemoteUserMiddleware but:

  • can use any header defined by the setting DF_REMOTE_USER_HEADER,
  • handle the HTTP_X_FORWARDED_FOR HTTP header (set the right client IP)
  • handle HTTP basic authentication
  • set response header for Internet Explorer (to use its most recent render engine)
ajax_header = 'HTTP_WINDOW_KEY'
format_remote_username(remote_username)[source]
header = None
process_request(request: django.http.request.HttpRequest)[source]
process_response(request, response)[source]
remote_user_authentication(request, username)[source]
class djangofloor.middleware.Djangoi18nMiddleware[source]

Add attributes required for using i18n-related functions.

from_dict(window_info, values)[source]
from_request(request, window_info)[source]
get_context(window_info)[source]
new_window_info(window_info)[source]
to_dict(window_info)[source]
class djangofloor.middleware.FakeAuthenticationMiddleware(get_response=None)[source]

Deprecated class, replaced by djangofloor.middleware.DjangoFloorMiddleware

group_cache = {}
process_request(request)[source]
class djangofloor.middleware.IEMiddleware(get_response=None)[source]

Deprecated since version 1.0: replaced by djangofloor.middleware.DjangoFloorMiddleware

process_request(request)[source]
process_template_response(request, response)[source]
class djangofloor.middleware.RemoteUserMiddleware(get_response=None)[source]

Deprecated class, replaced by djangofloor.middleware.DjangoFloorMiddleware

header = None
original_process_request(request)[source]
process_request(request)[source]
class djangofloor.middleware.WindowInfoMiddleware[source]

Base class for the WindowInfo middlewares.

from_dict(window_info, values)[source]
from_request(request, window_info)[source]
get_context(window_info)[source]
install_methods(window_info_cls)[source]
new_window_info(window_info)[source]
to_dict(window_info)[source]
class djangofloor.middleware.WindowKeyMiddleware[source]

handle the unique ID generated for each django.http.request.HttpRequest and copy it to the WindowInfo object

from_dict(window_info, values)[source]
from_request(request, window_info)[source]
get_context(window_info)[source]
new_window_info(window_info)[source]
to_dict(window_info)[source]