请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

adamcharnock/django-su: Login as any user from the Django admin interface, then ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

adamcharnock/django-su

开源软件地址:

https://github.com/adamcharnock/django-su

开源编程语言:

Python 90.8%

开源软件介绍:

django-su

Login as any user from the Django admin interface, then switch back when done

Authored by Adam Charnock, and some great contributors.

https://coveralls.io/repos/adamcharnock/django-su/badge.svg?branch=develop

Installation

  1. Either checkout django_su from GitHub, or install using pip :

    pip install django-su
  2. Add django_su to your INSTALLED_APPS. Make sure you put it before django.contrib.admin :

    INSTALLED_APPS = (
        ...
        'django_su',  # must be before ``django.contrib.admin``
        'django.contrib.admin',
    )
  3. Add SuBackend to AUTHENTICATION_BACKENDS :

    AUTHENTICATION_BACKENDS = (
        ...
        'django_su.backends.SuBackend',
    )
  4. Update your urls.py file :

    urlpatterns = [
        url(r'^su/', include('django_su.urls')),
        ...
    ]

And that should be it!

Please see example application. This application is used to manually test the functionalities of this package. This also serves as a good example.

django-su is tested on Django 2.2 or above, lower versions may work, but are considered unsupported.

External dependencies (optional, but recommended)

The following apps are optional but will enhance the user experience:

Note that django-ajax-selects requires the following settings:

AJAX_LOOKUP_CHANNELS = {'django_su':  dict(model='auth.user', search_field='username')}

Configuration (optional)

There are various optional configuration options you can set in your settings.py

# URL to redirect after the login.
# Default: "/"
SU_LOGIN_REDIRECT_URL = "/"

# URL to redirect after the logout.
# Default: "/"
SU_LOGOUT_REDIRECT_URL = "/"

# A function specifying the permissions a user requires in order
# to use the django-su functionality.
# Default: None
SU_LOGIN_CALLBACK = "example.utils.su_login_callback"

# A function to override the django.contrib.auth.login(request, user)
# view, thereby allowing one to set session data, etc.
# Default: None
SU_CUSTOM_LOGIN_ACTION = "example.utils.custom_login"

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.

How to

How to Notify superuser when connected with another user

This option warns the superuser when working with another user as initially logged in. To activate this option perform:

  1. Add django_su.context_processors.is_su to TEMPLATE_CONTEXT_PROCESSORS :

    TEMPLATE_CONTEXT_PROCESSORS = (
        ...
        'django_su.context_processors.is_su',
    )
  2. In your base.html include su/is_su.html snippet :

    {% include "su/is_su.html" %}

How to use django-su with a custom user model (AUTH_USER_MODEL)

Django-su should function normally with a custom user model. However, your ModelAdmin in your admin.py file will need tweaking as follows:

# Within your admin.py file
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

from . import models

 @admin.register(models.CustomUser)
 class CustomUserAdmin(UserAdmin):
     # The following two lines are needed:
     change_form_template = "admin/auth/user/change_form.html"
     change_list_template = "admin/auth/user/change_list.html"

This ensures the Django admin will use the correct template customisations for your custom user model.

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.




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap