Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Login as any user from the Django admin interface, then switch back when done
Python
branch: master
Failed to load latest commit information.
django_su
.gitignore
CHANGES.txt Version bump to 0.4.7 and updating CHANGES.txt
LICENSE Adding a license. Fixes #8
MANIFEST.in
README.rst
setup.py

README.rst

https://badge.fury.io/py/django-su.png https://pypip.in/d/django-su/badge.png

Installation

Step 1: Settings

Add django_su to INSTALLED_APPS. Make sure you put it before django.contrib.admin.

Next add the django-su authentication backend:

AUTHENTICATION_BACKENDS = (
    # Standard Django auth
    "django.contrib.auth.backends.ModelBackend",
    # django-su auth
    "django_su.backends.SuBackend",
)

Step 2: urls.py

Add this to your root urls.py file:

url(r"^su/", include("django_su.urls")),

And that should be it!

Step 3: Install other eggs (optional, but recommended)

If you install these two eggs the enhance user experience:

Note that django ajax selects requires the following settings:

AJAX_LOOKUP_CHANNELS = {'django_su':  dict(model='auth.user', search_field='username')}

Step 4: Customize django_su (optional)

In your settings you can configure:

  • SU_REDIRECT_LOGIN: URL to redirect after the login. By default is "/"
  • SU_REDIRECT_EXIT: URL to redirect after the logout. By default is "/"
  • SU_LOGIN: A function to specify the perms that the user must have can use django_su
  • SU_CUSTOM_LOGIN_ACTION: A function to override the django.contrib.auth.login(request, user) function so you can set session data, etc.

Usage

Go and view a user in the admin interface and look for a new 'Login as' button in the top right.

Once you have su'ed into a user, you can get exit back into your original user by navigating to /su/ in your browser.

Credits

This app was put together by Adam Charnock, but was largely based on ideas, code and comments at:

django-su is packaged using seed.

Something went wrong with that request. Please try again.