python - 如何在 ldap 参数后分配组?
问题描述
我想在特定的 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)
但我会像这样在我的settings.py中尝试这样做
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)
推荐阅读
- android - 在 Firebase Recycler 的 OnBindViewHolder 中设置 View Holder 的高度
- neo4j - 使用密码查询时,螺栓连接会选择性地变慢,而基于 Web 的 GUI 总是很快
- r - 如何从函数参数定义 R data.table/data.frame 列?
- angular - Angular 2 重置 Observable 计时器
- html - 除非我在浏览器的开发工具中编辑文件,否则不会为规则解析 CSS 样式表
- xml - XSLT - text() 连接单词
- java - AuthenticationProvider 未进行身份验证
- javascript - 为什么'addEventListener'只适用于'for循环'
- sketchapp - Sketch 应用程序中的文本环绕
- javascript - 如何像 jQuery 一样过滤 vanilla Javascript 中的元素?