This commit is contained in:
laodaming 2023-11-17 16:40:50 +08:00
parent 3996b3e1cb
commit 0862a8e652

View File

@ -92,41 +92,53 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
} }
userList := make([]types.GetLdapOrganizationMembersItem, 0, memberCount) userList := make([]types.GetLdapOrganizationMembersItem, 0, memberCount)
for _, entry := range result.Entries { for _, entry := range result.Entries {
userInfo := types.GetLdapOrganizationMembersItem{ user := types.GetLdapOrganizationMembersItem{
UserDN: entry.DN, UserDN: entry.DN,
} }
canAppend := true
for _, attr := range entry.Attributes { for _, attr := range entry.Attributes {
switch attr.Name { switch attr.Name {
case "uidNumber": //用户id case "uidNumber": //用户id
if len(attr.Values) == 0 { if len(attr.Values) == 0 {
return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户id不存在") return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户id不存在")
} }
userInfo.UserId, err = strconv.ParseInt(attr.Values[0], 10, 64) user.UserId, err = strconv.ParseInt(attr.Values[0], 10, 64)
if err != nil { if err != nil {
logx.Error(err) logx.Error(err)
return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户id转数字失败") return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户id转数字失败")
} }
case "sn": //用户真名 case "sn": //用户真名
userInfo.UserName = strings.Join(attr.Values, "") user.UserName = strings.Join(attr.Values, "")
case "mail": //邮箱 case "mail": //邮箱
userInfo.Email = strings.Join(attr.Values, "") user.Email = strings.Join(attr.Values, "")
case "mobile": //手机号 case "mobile": //手机号
userInfo.Mobile = strings.Join(attr.Values, "") user.Mobile = strings.Join(attr.Values, "")
case "postalAddress": //头像 case "postalAddress": //头像
userInfo.Avatar = strings.Join(attr.Values, "") user.Avatar = strings.Join(attr.Values, "")
case "postalCode": //状态 case "postalCode": //状态
if len(attr.Values) == 0 { if len(attr.Values) == 0 {
return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户状态不存在") return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户状态不存在")
} }
userInfo.Status, err = strconv.ParseInt(attr.Values[0], 10, 64) user.Status, err = strconv.ParseInt(attr.Values[0], 10, 64)
if err != nil { if err != nil {
logx.Error(err) logx.Error(err)
return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户状态转数字失败") return resp.SetStatusWithMessage(basic.CodeServiceErr, "用户状态转数字失败")
} }
//无效员工就不要显示了
if user.Status != 1 {
//从该组中移除该成员
if err = ldapServer.RemoveUserFromOrganization(req.OrganizationDN, entry.DN); err != nil {
logx.Error("移除组中离职成员失败,", err.Error())
}
canAppend = false //要移除的成员就不要显示了
break
}
} }
} }
//添加列表 //添加列表
userList = append(userList, userInfo) if canAppend {
userList = append(userList, user)
}
} }
return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{ return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{
List: userList, List: userList,