我有一个 Django 应用程序,它有两个身份验证后端,一个具有所有“内部”用户的 LDAP 后端和一个具有“外部”用户的自定义后端。所有与 LDAP 组搜索过滤器匹配的内部用户都应使用is_staff
:创建True
。
之前,我们使用
AUTH_LDAP_USER_ATTR_MAP = {
"name": "cn",
"email": "mail",
"is_staff": "mail",
}
这似乎工作得很好,但是使用 Django 1.10 我们现在得到:
django.core.exceptions.ValidationError: ["'me@example.com' value must be either True or False."]
我知道我可以搜索组成员并将其匹配,is_staff
但基本上我希望针对 LDAP 进行身份验证的用户的所有is_staff
帐户自动设置为:True
。
有没有合适的方法来做到这一点?我知道我可以在事后通过挂钩django_auth_ldap.backend.populate_user
信号来修复它,但是用户已经创建,最好我想在创建用户之前对其进行修改。