2017-05-15 13 views
0

私は、2つの認証バックエンド、すべての「内部」ユーザーを持つLDAPバックエンド、および「外部」ユーザーを持つカスタムバックエンドを持つDjangoアプリケーションを使用しています。 LDAPグループ検索フィルタに一致するすべての内部ユーザーは、is_staffTrueで作成する必要があります。django-auth-ldap新しく作成されたユーザーのデフォルト値

は以前、我々は

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

を使用し、これは、しかし、私たちが今取得Djangoの1.10を使用して、うまく動作するように見えた:

django.core.exceptions.ValidationError: ["'[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" 
} 
関連する問題