如何在Django中拆分ldap参数

时间:2019-05-07 14:46:13

标签: python django ldap

我使用django ldap映射用户。它可以工作,但是我的ldap'cn'参数包含名字和姓氏。我想将其拆分并分配属性。例如(cn:Adam Smith)

可能应该在创建用户的地方进行。但是我不太清楚它在哪里。

我尝试在settings.py中拆分,但这是不可能的还是我错了?

AUTH_LDAP_USER_ATTR_MAP = {
     'first_name': 'cn',
}


list=cn.split(' ')

first_name = list[0]
last_name = list[1]

1 个答案:

答案 0 :(得分:0)

@Raturaj解决起来非常容易,但我必须对其进行搜索。本文的最后一段对我有所帮助。 https://coderbook.com/@marcus/how-to-add-ldap-and-active-directory-authentication-to-django/。并且了解如何初始化signals.py文件,在堆栈溢出时很容易找到它。

和我的代码(如果本文过时):

signals.py:

import re
from django.dispatch import receiver
from django_auth_ldap.backend import populate_user, LDAPBackend


@receiver(populate_user, sender=LDAPBackend)
def ldap_auth_handler(user, ldap_user, **kwargs):

    list = user.first_name.split(' ')
    user.first_name= list[0]
    user.last_name = list[1]


    user.save()

和settings.py

AUTH_LDAP_USER_ATTR_MAP = {
        'first_name' : 'cn',
 }