Я использую django-auth-ldap для подключения к серверу LDAP для аутентификации. django-auth-ldap предоставляет параметр AUTH_LDAP_REQUIRE_GROUP
, который можно использовать для разрешения доступа только пользователям, помещенным в определенную группу. Это работает нормально, но опция позволяет проверить только одну группу; Я хочу проверить, помещены ли пользователи в ту или иную группу.
В модуле django_auth_ldap/backend.py
я мог бы изменить метод _check_required_groups
класса LDAPUser(object)
, чтобы реализовать это поведение. Его изменение напрямую работает нормально, но поскольку изменение источника приведет к аду обслуживания, я ищу решение для изменения этого метода, не касаясь источника. У меня было две идеи:
1) Исправление обезьян
Измените метод _check_required_groups
экземпляра класса LDAPUser
. Проблема в том, что я понятия не имею, где он создается. Я просто использую LDAPSearch
и GroupOfNamesType
, импортированные из django_auth_ldap.config
в файл настроек, и передаю строку django_auth_ldap.backend.LDAPBackend
в кортеж AUTHENTICATION_BACKENDS
.
2) Расширение модуля
Создайте собственный модуль, расширив исходный django_auth_ldap
и используя его вместо оригинала. Я попытался создать новый каталог, добавив __init__.py
со строкой:
from django_auth_ldap import *
Но использование этого модуля не работает, так как он не может импортировать custom_auth.config
.
Любые другие предложения или подсказки, как сделать одну из этих попыток работать?