38 lines
780 B
Go
38 lines
780 B
Go
package ldap_lib
|
|
|
|
import (
|
|
"github.com/go-ldap/ldap/v3"
|
|
)
|
|
|
|
type LdapGroup struct {
|
|
conn *ldap.Conn
|
|
}
|
|
|
|
func NewLdapGroup(conn *ldap.Conn) *LdapGroup {
|
|
return &LdapGroup{conn}
|
|
}
|
|
|
|
// 更新分组信息
|
|
func (l *LdapGroup) UpdateGroup(groupDN string, attr map[string][]string) error {
|
|
modify := ldap.NewModifyRequest(groupDN, nil)
|
|
for key, v := range attr {
|
|
modify.Replace(key, v)
|
|
}
|
|
return l.conn.Modify(modify)
|
|
}
|
|
|
|
// 删除分组
|
|
func (l *LdapGroup) DeleteGroup(groupDN string) error {
|
|
del := ldap.NewDelRequest(groupDN, nil)
|
|
return l.conn.Del(del)
|
|
}
|
|
|
|
// 创建分组
|
|
func (l *LdapGroup) CreateGroup(groupDN string, attr map[string][]string) error {
|
|
add := ldap.NewAddRequest(groupDN, nil)
|
|
for key, v := range attr {
|
|
add.Attribute(key, v)
|
|
}
|
|
return l.conn.Add(add)
|
|
}
|