如何在ldap参数后分配组?

How to assign group after the ldap parameter?

我想在特定的 ldap 参数之后分配给组。 在 Django 中,我在 ldap 中还有其他组。

我在 signals.py 中做了一些事情,但我想在 settings.py 中做同样的事情,因为当我创建一个新组时,我想在 settings.py [=12] 中做一些改变=]

我在 signals.py 中执行此操作并且有效 </p> <pre><code>global group_name if (gidNumber =='201'): goup_name = 'a ' elif (gidNumber == '202'): user.is_staff = True group_name = 'b' else: group_name = 'c' if(user.groups.filter(name=group_name).exists()!= True ): group = Group.objects.get(name=group_name) user.groups.add(gruop)

但我会像这样平滑地做这件事 我尝试在我的 settings.py

中这样做

</p> <pre><code> AUTH_LDAP_USER_FLAGS_BY_GROUP = { "groups.filter(name='a')": "gidNumber=201,uid=%(user)s,ou=People,dc=yy,dc=xx ", }

最简单的答案是在 settings.py

中创建自己的字典
LDAP_DICTIONARY = {
    '201':'a',
    '202':'b',
    '203':'c'
    }

AUTH_LDAP_USER_ATTR_MAP = {
    'first_name' : 'gecos',
    'last_name' : 'gidNumber',
     }

并在 signals.py 中分配 属性,但我只有 first_name 和 last_name 参数,所以我将 gidNumber 分配给 last_name 并清理此参数

gidNumber = user.last_name    
user.last_name=' '
group_name =LDAP_DICTIONARY[gidNumber]
group = Group.objects.get(name=group_name)
user.groups.add(group)