djactasauth

Django authentication backend allowing admins to login as another user


Keywords
django, authentication, act, as, impersonation, user-management
License
BSD-3-Clause
Install
pip install djactasauth==0.4.1

Documentation

Django Act As Auth Backend

Django authentication back-end that allows one to login as someone else (an existing Django user allowed to login) without having to know their password.

Great for customer support and testing scenarios!

https://travis-ci.org/PaesslerAG/django-act-as-auth.svg?branch=master https://readthedocs.org/projects/django-act-as-auth/badge/?version=latest

Quickstart

Install djactasauth:

pip install djactasauth

Add it to your auth backends in settings:

import djactasauth
AUTHENTICATION_BACKENDS = (
    ...,
    'djactasauth.backends.OnlySuperuserCanActAsBackend',
    ...,
)

Configure the custom login view to take advantage of all the features in your urls.py:

from django.conf.urls import patterns, url
from djactasauth.views import PrefillLoginView
from testapp.views import whoami


urlpatterns = patterns(
    '',
    url(r'^login/$', PrefillLoginView.as_view(), {}, 'login'),
)

Then you can log in with username your_superuser_name/customer and password yourpassword.

Contributing

As an open source project, we welcome contributions.

The code lives on github.

Reporting issues/improvements

Please open an issue on github or provide a pull request whether for code or for the documentation.

For non-trivial changes, we kindly ask you to open an issue, as it might be rejected. However, if the diff of a pull request better illustrates the point, feel free to make it a pull request anyway.

Pull Requests

  • for code changes
    • it must have tests covering the change. You might be asked to cover missing scenarios
    • the latest flake8 will be run and shouldn't produce any warning
    • if the change is significant enough, documentation has to be provided
  • if you are not there already, add yourself to the Authors file

Setting up all Python versions

sudo apt-get -y install software-properties-common
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
for version in 3.5 3.6; do
  py=python$version
  sudo apt-get -y install ${py} ${py}-dev
done

Code of Conduct

As it is a Django extension, it follows Django's own Code of Conduct. As there is no mailing list yet, please just email one of the main authors (see setup.py file)