Как удалить ссылку для смены пароля с django админки? - PullRequest
1 голос
/ 17 июня 2020

Я использую аутентификацию для входа в активную директорию для своего django веб-приложения. Таким образом, нет необходимости в ссылке для смены пароля на сайте администратора.

Я просмотрел много статей, но не нашел ничего, чтобы скрыть ссылку для смены пароля. Так как же скрыть ссылку для смены пароля от администратора?

1 Ответ

3 голосов
/ 17 июня 2020

Вам не нужно переопределять шаблон администратора.

Если user.has_usable_password() возвращает False, тогда Django не будет отображать URL смены пароля для этого пользователя .

user.has_usable_password() можно заставить вернуть False, позвонив по номеру user.set_unusable_password().

From docs :

set_unusable_password()

Помечает пользователя как не имеющего установленного пароля. Это не то же самое, что наличие пустой строки для пароля. check_password() для этого пользователя никогда не вернет True. Не сохраняет объект User.

Это может понадобиться, если аутентификация для вашего приложения выполняется с использованием существующего внешнего источника, такого как каталог LDAP.

has_usable_password()

Возвращает False, если set_unusable_password() был вызван для этого пользователя.

Исходный код для фильтра условий в Django базовом шаблоне администратора :

{% if user.has_usable_password %}
    <a href="{% url 'admin:password_change' %}">{% translate 'Change password' %}</a> 
{% endif %}
...