2015-06-23 4 views
1

The "Overview" section of the "User authentication in Django" documentation говорит, что система аутентификации в Django не проверяет надежность пароля. Я написал класс формы, который добавляет некоторые базовые требования к паролю, такие как минимальная длина символа. Я пытаюсь реализовать его в интерфейсе администратора Django. Насколько я знаю, есть три места, которые мне нужно будет реализовать свои требования к паролям:Добавление требований пароля к интерфейсу администратора Django

  1. Создание пользователя:/администратор/аутентификации/пользователь/добавить/
  2. Изменение пароля пользователя:/администратор/авт/пользователь/1/пароль/
  3. Изменение моего собственного пароля:/администратор/password_change/

Я могу позаботиться о первых двух по подклассам UserAdmin и указав add_form и change_password_form:

https://github.com/django/django/blob/1.8.2/django/contrib/auth/admin.py#L58-L59

Как я могу получить третий (меняя собственный пароль) для использования моих требований к паролю? Код немного выше меня:

https://github.com/django/django/blob/1.8.2/django/contrib/admin/sites.py#L314

ответ

0

Очевидно по югу причислять и используя свои AdminSite

# my_admin.py 
class MyAdminSite(AdminSite): 
    def password_change(self, request, extra_context=None): 
     ... 

site = MyAdminSite() 

Вы можете отключить автоопределение для администратора сайта по умолчанию, с помощью AdminConfig для настройки INSTALLED_APPS (только django 1.8+)

INSTALLED_APPS = (
    'django.contrib.admin.apps.AdminConfig', 
    ... 
) 

И тогда вам необходимо вручную зарегистрировать требуемые модели на своем новый админ-сайт.