【发布时间】:2017-10-14 06:47:48
【问题描述】:
我有一个 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 信号来修复它,但是用户已经创建,最好我想在创建用户之前修改用户之前。
【问题讨论】:
标签: django django-authentication django-auth-ldap