【问题标题】:django-auth-ldap default values for newly created user新创建用户的 django-auth-ldap 默认值
【发布时间】: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


    【解决方案1】:

    正确的实现可能是使用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"
    }
    

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2011-06-14
      相关资源
      最近更新 更多