我想在特定的ldap参数之后分配给组。 在Django中,我在ldap中还有其他组。
我在signals.py中做了一些事情,但是我想在settings.py中做同样的事情,因为当我创建一个新的组时,我想在settings.py中进行一些更改
我在signals.py ant中做到了这一点
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)
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
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"groups.filter(name='a')":
"gidNumber=201,uid=%(user)s,ou=People,dc=yy,dc=xx ",
}
答案 0 :(得分:0)
最简单的答案是在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)