2017-05-15 32 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" 
}