From e5a73420b655e826385b54d315e2b7721b6fd76a Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Wed, 22 Nov 2023 13:07:05 +0800 Subject: [PATCH] fix --- .../logic/getldaporganizationmemberslogic.go | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go b/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go index 70a53e28..3ae5c203 100644 --- a/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go +++ b/server/ldap-admin/internal/logic/getldaporganizationmemberslogic.go @@ -60,27 +60,32 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types. filterBuilder := strings.Builder{} memberCount := 0 memberDNList := make([]string, 0, 100) - for _, entry := range result.Entries { - if entry.DN != req.OrganizationDN { + if len(result.Entries) == 0 { + return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{ + List: []types.GetLdapOrganizationMembersItem{}, + }) + } + teamGroup := result.Entries[0] + if teamGroup.DN != req.OrganizationDN { + return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{ + List: []types.GetLdapOrganizationMembersItem{}, + }) + } + //查到用户信息了 + for _, attr := range teamGroup.Attributes { + if attr.Name != "uniqueMember" { continue } - //查到用户信息了 - for _, attr := range entry.Attributes { - if attr.Name != "uniqueMember" { + memberCount = len(attr.Values) + memberDNList = attr.Values + for _, memberDn := range attr.Values { + //不需要根用户 + if memberDn == l.svcCtx.Config.Ldap.RootDN { continue } - memberCount = len(attr.Values) - memberDNList = attr.Values - for _, memberDn := range attr.Values { - //不需要根用户 - if memberDn == l.svcCtx.Config.Ldap.RootDN { - continue - } - //解析dn成每个小的单元 - cellList := strings.Split(memberDn, ",") //取cn邮箱 - filterBuilder.WriteString(fmt.Sprintf("(%s)", cellList[0])) - } - break + //解析dn成每个小的单元 + cellList := strings.Split(memberDn, ",") //取cn邮箱 + filterBuilder.WriteString(fmt.Sprintf("(%s)", cellList[0])) } break }