fix
This commit is contained in:
parent
b46b707586
commit
233987634c
|
@ -59,6 +59,7 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
|
||||||
//遍历成员提取cn用于从用户基础组中获取用户信息列表
|
//遍历成员提取cn用于从用户基础组中获取用户信息列表
|
||||||
filterBuilder := strings.Builder{}
|
filterBuilder := strings.Builder{}
|
||||||
memberCount := 0
|
memberCount := 0
|
||||||
|
memberDNList := make([]string, 0, 100)
|
||||||
for _, entry := range result.Entries {
|
for _, entry := range result.Entries {
|
||||||
if entry.DN != req.OrganizationDN {
|
if entry.DN != req.OrganizationDN {
|
||||||
continue
|
continue
|
||||||
|
@ -69,6 +70,7 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
memberCount = len(attr.Values)
|
memberCount = len(attr.Values)
|
||||||
|
memberDNList = attr.Values
|
||||||
for _, memberDn := range attr.Values {
|
for _, memberDn := range attr.Values {
|
||||||
//不需要根用户
|
//不需要根用户
|
||||||
if memberDn == l.svcCtx.Config.Ldap.RootDN {
|
if memberDn == l.svcCtx.Config.Ldap.RootDN {
|
||||||
|
@ -91,6 +93,7 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
|
||||||
return resp.SetStatusWithMessage(basic.CodeServiceErr, "查询ldap帐号信息失败,"+err.Error())
|
return resp.SetStatusWithMessage(basic.CodeServiceErr, "查询ldap帐号信息失败,"+err.Error())
|
||||||
}
|
}
|
||||||
list := make([]types.GetLdapOrganizationMembersItem, 0, memberCount)
|
list := make([]types.GetLdapOrganizationMembersItem, 0, memberCount)
|
||||||
|
mapUser := make(map[string]struct{})
|
||||||
for _, user := range userList {
|
for _, user := range userList {
|
||||||
if user.Status != 1 {
|
if user.Status != 1 {
|
||||||
//从部门member中移出
|
//从部门member中移出
|
||||||
|
@ -99,6 +102,7 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
|
||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
mapUser[user.UserDN] = struct{}{}
|
||||||
list = append(list, types.GetLdapOrganizationMembersItem{
|
list = append(list, types.GetLdapOrganizationMembersItem{
|
||||||
UserId: user.UserId,
|
UserId: user.UserId,
|
||||||
UserDN: user.UserDN,
|
UserDN: user.UserDN,
|
||||||
|
@ -110,6 +114,16 @@ func (l *GetLdapOrganizationMembersLogic) GetLdapOrganizationMembers(req *types.
|
||||||
Status: user.Status,
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{
|
return resp.SetStatusWithMessage(basic.CodeOK, "success", types.GetLdapOrganizationMembersRsp{
|
||||||
List: list,
|
List: list,
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user