我使用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]
答案 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',
}