Skip to content
This repository has been archived by the owner on Feb 1, 2018. It is now read-only.

Latest commit

 

History

History
75 lines (48 loc) · 2.39 KB

README.rst

File metadata and controls

75 lines (48 loc) · 2.39 KB
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.