关注公众号《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移除用户
就这么简单两个接口完成。
更多文章请扫一扫
扫描下面二维码关注公众号,获取更多学习资源