关注公众号《DevOps运维民工》,将获取更多运维干货
目录
简介
这节来实现给某个Group增加用户和移除某个组下的用户。
remove_user_in_group方法: 移除某个组中的用户
add_user_in_group方法: 给某个组增加用户
步骤
导入模块
from ldap3.extend.microsoft.addMembersToGroups import ad_add_members_to_groups
from ldap3.extend.microsoft.removeMembersFromGroups import ad_remove_members_from_groups
实现逻辑
完整代码参考上一节
class LDAP(LdapConfig):
'''
如果要重写LdapConfig__init__,注意要继承父类的构造方法.
格式:
super(子类,self).__init__(参数1,参数2,....)
'''
def remove_user_in_group(self,username,groupName):
'''
作用:
移除Group中的的member(users)
格式:
from ldap3.extend.microsoft.removeMembersFromGroups import ad_remove_members_from_groups
:param username:
:param groupName:
:return:
'''
ldap = LdapGetUsers()
usersInfo = ldap.get_user_dn(username)
if usersInfo == False:
BadRequesHttpException()
else:
ad_remove_members_from_groups(
self.conn,
f'cn={username},ou={usersInfo["ou"]},{basednPeople["basedn"]}',
f'cn={groupName},{basednGroup["basedn"]}',
fix=True
)
return self.conn.result
def add_user_in_group(self,username,groupName):
'''
作用:
将用户添加到Group
格式:
ldap3.extend.microsoft.addMembersToGroups.ad_add_members_to_groups(connection, members_dn, groups_dn, fix=True, raise_error=False)
:return:
'''
ldap = LdapGetUsers()
usersInfo = ldap.get_user_dn(username)
if usersInfo == False:
BadRequesHttpException()
else:
ad_add_members_to_groups(
self.conn,
f'cn={username},ou={usersInfo["ou"]},{basednPeople["basedn"]}',
f'cn={groupName},{basednGroup["basedn"]}',
fix=True
)
return self.conn.result
说明:
- ad_remove_members_from_groups和ad_add_members_to_groups方法参数格式是一样的
- members_dn: 要删除/添加的的成员列表
- groups_dn:要从哪个Group移除/添加成员
接口实现
@router.post("/group/users",description="添加用户到Group")
async def add_user_in_group(username:str,groupName:str,token: str = Depends(oauth2_scheme)):
ldap = ldap_api.LDAP(Token.Decryption(token)["username"], Token.Decryption(token)["password"])
result = ldap.add_user_in_group(username,groupName)
return result
@router.delete("/group/users",description="移除Group中的users")
async def remove_user_in_group(username:str,groupName:str,token: str = Depends(oauth2_scheme)):
ldap = ldap_api.LDAP(Token.Decryption(token)["username"], Token.Decryption(token)["password"])
result = ldap.remove_user_in_group(username,groupName)
return result
写两个接口,除了HTTP操作方法不一样,其他都一样,分别传递要操作的username和Group名称即可。
效果
添加用户到Group
可见用户已经成功添加到执行的group下
从group移除用户
就这么简单两个接口完成。
更多文章请扫一扫
扫描下面二维码关注公众号,获取更多学习资源