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 and later.
Suggestions and contributions are welcome. USE THIS APP AT YOUR OWN RISK!
pip install django-assume
Add
assume
tosettings.INSTALLED_APPS
and make sure that theapp_directories
template loader is enabled in your project:INSTALLED_APPS = ( # ... 'assume', )
Add one of the custom authentication backends in
assume.backends
tosettings.AUTHENTICATION_BACKENDS
. For example:AUTHENTICATION_BACKENDS = ( 'assume.backends.AssumableModelBackend', 'django.contrib.auth.backends.ModelBackend', )
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; clicking the button will log you in as that user.
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 theassume_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