From 67ac4b37a25a0affef5f27bba588cfa37f53bdc2 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Wed, 22 Nov 2023 12:30:50 +0800 Subject: [PATCH] fix --- .../logic/getldaporganizationmemberslogic.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go b/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go index 675333c4..70a53e28 100644 --- a/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go +++ b/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go @@ -114,14 +114,16 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types. Status: user.Status, }) } - //把通讯录中没有的也删除 - for _, memberDN := range memberDNList { - if _, ok := mapUser[memberDN]; ok { - continue - } - //从组织中移除没有帐号的用户 - if err = l.svcCtx.Ldap.RemoveUserFromOrganization(req.OrganizationDN, memberDN); err != nil { - logx.Error("移除用户成员失败!:", err) + //成员组成员DN数跟查出来的不一致有可能是帐号被物理删除了,则也把帐号从组织中移除 + if memberCount != len(userList) { + for _, memberDN := range memberDNList { + if _, ok := mapUser[memberDN]; ok { + continue + } + //从组织中移除没有帐号的用户 + if err = l.svcCtx.Ldap.RemoveUserFromOrganization(req.OrganizationDN, memberDN); err != nil { + logx.Error("移除用户成员失败!:", err) + } } } return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{