2017-05-15 31 views
0

我有一个Django应用程序,它有两个身份验证后端,一个拥有所有'内部'用户和一个具有'外部'用户的自定义后端的LDAP后端。所有匹配LDAP组搜索过滤器的内部用户都应该使用is_staff创建:Truedjango-auth-ldap新创建用户的默认值

以前,我们使用

AUTH_LDAP_USER_ATTR_MAP = { 
    "name": "cn", 
    "email": "mail", 
    "is_staff": "mail", 
} 

,这似乎工作得很好,但是使用Django 1.10,我们现在得到:

django.core.exceptions.ValidationError: ["'me[email protected]' value must be either True or False."] 

我知道我可以搜索组和匹配,以is_staff但基本上我想要全部帐户的用户验证对LDAP自动设置为is_staffTrue

有没有适当的方法来做到这一点?我知道我可以通过挂钩django_auth_ldap.backend.populate_user信号来解决问题,但用户已经创建好了,最好是在创建之前修改用户

回答

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" 
}