Login as any user from the Django admin interface, then switch back when done
Python
Pull request Compare This branch is 141 commits behind adamcharnock:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/django_su
.gitignore
CHANGES.txt
LICENSE
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

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.