我有一个Django应用程序,它有两个身份验证后端,一个LDAP后端,所有内部'用户和具有'外部'的自定义后端用户。应使用is_staff
创建与LDAP组搜索过滤器匹配的所有内部用户: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
:{{ 1}}。
有没有正确的方法呢?我知道我可以通过挂钩True
信号来修复它,但之后用户已经创建,最好我想在创建之前修改用户。
答案 0 :(得分:0)
正确实施可能采用AUTH_LDAP_USER_FLAGS_BY_GROUP
设置,如下所示:http://pythonhosted.org/django-auth-ldap/users.html#easy-attributes
具体来说,如果您可以识别所有用户所属的组,则可以使用以下内容:
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_staff": "cn=users,ou=groups,dc=example,dc=com"
}