diff --git a/server/ldap-admin/internal/logic/getldapuserslogic.go b/server/ldap-admin/internal/logic/getldapuserslogic.go index 195f98d3..ebf1f3e1 100644 --- a/server/ldap-admin/internal/logic/getldapuserslogic.go +++ b/server/ldap-admin/internal/logic/getldapuserslogic.go @@ -38,7 +38,12 @@ func (l *GetLdapUsersLogic) GetLdapUsers(req *types.GetLdapUsersReq, r *http.Req } req.PageCookie = strings.Trim(req.PageCookie, " ") pageSize := uint32(20) - list, cookie, err := l.svcCtx.Ldap.GetLdapBaseTeamUserList(pageSize, req.PageCookie) + filter := "(objectClass=person)" + //有关键词就模糊搜索 + if req.UserName != "" { + filter = "(&(objectClass=person)(sn=*" + req.UserName + "*))" + } + list, cookie, err := l.svcCtx.Ldap.GetLdapBaseTeamUserList(pageSize, filter, req.PageCookie) if err != nil { logx.Error(err) return resp.SetStatusWithMessage(basic.CodeServiceErr, "查询用户列表报错,"+err.Error()) diff --git a/server/ldap-admin/internal/types/types.go b/server/ldap-admin/internal/types/types.go index d26328de..deffe809 100644 --- a/server/ldap-admin/internal/types/types.go +++ b/server/ldap-admin/internal/types/types.go @@ -224,6 +224,7 @@ type GetLdapOrganizationMembersItem struct { type GetLdapUsersReq struct { PageCookie string `form:"page_cookie,optional"` //下一页分页游标,传空/不传就是第一页 + UserName string `form:"user_name,optional"` //用户名用于模糊搜索 } type GetLdapUsersRsp struct { diff --git a/server_api/ldap-admin.api b/server_api/ldap-admin.api index 152a1828..82eace84 100644 --- a/server_api/ldap-admin.api +++ b/server_api/ldap-admin.api @@ -309,6 +309,7 @@ type GetLdapOrganizationMembersItem { //获取基础用户组中成员列表 type GetLdapUsersReq { PageCookie string `form:"page_cookie,optional"` //下一页分页游标,传空/不传就是第一页 + UserName string `form:"user_name,optional"` //用户名用于模糊搜索 } type GetLdapUsersRsp { List []GetLdapUsersItem `json:"list"` diff --git a/utils/ldap_lib/ldap_user.go b/utils/ldap_lib/ldap_user.go index 3e61fe90..a245d8f7 100644 --- a/utils/ldap_lib/ldap_user.go +++ b/utils/ldap_lib/ldap_user.go @@ -84,12 +84,12 @@ func (l *Ldap) GetLdapUserInfo(userDN string) (*LdapUserInfo, error) { } // 获取基础组用户列表 -func (l *Ldap) GetLdapBaseTeamUserList(pageSize uint32, pageCookie string) ([]LdapUserInfo, string, error) { +func (l *Ldap) GetLdapBaseTeamUserList(pageSize uint32, filter, pageCookie string) ([]LdapUserInfo, string, error) { pageCookieBytes, err := hex.DecodeString(pageCookie) if err != nil { return nil, "", err } - result, err := l.SearchWithPaging(l.peopleGroupDN, ldap.ScopeWholeSubtree, "(objectClass=person)", nil, pageSize, string(pageCookieBytes)) + result, err := l.SearchWithPaging(l.peopleGroupDN, ldap.ScopeWholeSubtree, filter, nil, pageSize, string(pageCookieBytes)) if err != nil { return nil, "", err }