/django-assume

Django Assume: Allows administrators to log in to user accounts without having to provide a password

Primary LanguagePythonDo What The F*ck You Want To Public LicenseWTFPL

django-assume

Django Assume is a simple, reusable Django app that allows administrators to log in to other user accounts without having to provide a password. This can be useful for investigating and troubleshooting problems related to specific user accounts.

This app is intended for use with Django 1.3.

Suggestions and contributions are welcome. USE THIS APP AT YOUR OWN RISK!

Installation

  1. Add assume to settings.INSTALLED_APPS and make sure that the app_directories template loader is enabled in your project.

  2. Add one of the custom authentication backends in assume.backends to settings.AUTHENTICATION_BACKENDS. For example:

    AUTHENTICATION_BACKENDS = (
        'assume.backends.AssumableModelBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
    
  3. Include assume.admin_urls in your project's URL patterns:

    urlpatterns += patterns('',
        (r'^admin/', include('assume.admin_urls')),
    )
    

You should now see an "Assume" button near the top of each Change User form in admin.

  1. (mapes911) For django 1.5 if you are using a custom user model you need
    to move the change_form.html file to a directory matching where your user model resides. eg. templates > admin > myapp > mycustomuser > change_form.html

Options

  • To specify the next URL to be redirected to after a user has been assumed, use the following setting:

    URL_AFTER_ASSUME = '/next/url/'
    

    Alternately, specify a custom URL pattern and pass a next_url parameter to the assume_user view:

    urlpatterns += patterns('',
        url(r'^admin/auth/user/(\d+)/assume/$', 'assume.views.assume_user', {
            'next_url': '/demo/'
        }, name='assume_user'),
    )
    
  • By default, staff members cannot be assumed. This can be changed using the following setting:

    CAN_ASSUME_STAFF = True