欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

FastAPI开发OpenLDAP管理平台

时间:2023-07-13

关注公众号《DevOps运维民工》,将获取更多运维干货

目录

简介

步骤

效果

更多文章请扫一扫


简介

这节来实现给某个Group增加用户和移除某个组下的用户。
remove_user_in_group方法: 移除某个组中的用户
add_user_in_group方法: 给某个组增加用户

步骤

导入模块

from ldap3.extend.microsoft.addMembersToGroups import ad_add_members_to_groupsfrom 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移除用户

 

 

 就这么简单两个接口完成。

更多文章请扫一扫

 扫描下面二维码关注公众号,获取更多学习资源

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。