fix
This commit is contained in:
@@ -2,6 +2,7 @@ package ldap_lib
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/go-ldap/ldap/v3"
|
||||
@@ -109,7 +110,49 @@ func (l *Ldap) SearchWithPaging(DN string, scope int, filter string, attr []stri
|
||||
return l.conn.Search(searchRequest)
|
||||
}
|
||||
|
||||
//*********************************************************************************************
|
||||
// *********************************************************************************************
|
||||
// 查询组织列表
|
||||
type OrganizationInfo struct {
|
||||
Name string `json:"name"`
|
||||
DN string `json:"dn"`
|
||||
Owner string `json:"owner"`
|
||||
Members []string `json:"members"`
|
||||
}
|
||||
|
||||
func (l *Ldap) GetOrganizationList(scope int, organizationDNs []string, fields []string, control []ldap.Control) ([]OrganizationInfo, error) {
|
||||
filterBuilder := strings.Builder{}
|
||||
for _, dn := range organizationDNs {
|
||||
//提取 ou
|
||||
filterBuilder.WriteString(fmt.Sprintf("(%s)", strings.Split(dn, ",")[0]))
|
||||
}
|
||||
filter := "(&(objectClass=groupOfUniqueNames)(objectClass=top))"
|
||||
if filterBuilder.Len() > 0 {
|
||||
filter = "(&(objectClass=groupOfUniqueNames)(objectClass=top)(|" + filterBuilder.String() + "))"
|
||||
}
|
||||
organizationsResult, err := l.Search(l.baseDN, scope, filter, fields, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
list := make([]OrganizationInfo, 0, len(organizationsResult.Entries))
|
||||
for _, entry := range organizationsResult.Entries {
|
||||
data := OrganizationInfo{
|
||||
DN: entry.DN,
|
||||
}
|
||||
for _, attr := range entry.Attributes {
|
||||
switch attr.Name {
|
||||
case "businessCategory": //名称
|
||||
data.Name = strings.Join(attr.Values, ",")
|
||||
case "owner": //负责人
|
||||
data.Owner = strings.Join(attr.Values, ",")
|
||||
case "uniqueMember": //成员
|
||||
data.Members = attr.Values
|
||||
}
|
||||
}
|
||||
list = append(list, data)
|
||||
}
|
||||
return list, nil
|
||||
}
|
||||
|
||||
// AddUserToGroup 添加用户到组织
|
||||
func (l *Ldap) AddUserToOrganization(organizationDN, userDN string) error {
|
||||
|
||||
Reference in New Issue
Block a user