From 04719c91b4779c944860f860ea1415c9b2ba43a2 Mon Sep 17 00:00:00 2001 From: tsueho Date: Mon, 14 Aug 2023 23:40:20 +0800 Subject: [PATCH] Add support for displayName in LDAP group --- group.go | 18 ++++++++++++++++-- group_test.go | 2 +- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/group.go b/group.go index cdde13f..02aa16f 100644 --- a/group.go +++ b/group.go @@ -7,7 +7,7 @@ import ( ) // CreateGroup creates ldap group -func (c *Client) CreateGroup(dn, name, description, groupType, managedBy string, members []string) error { +func (c *Client) CreateGroup(dn, name, description, groupType, managedBy string, displayName string, members []string) error { req := ldap.NewAddRequest(dn, []ldap.Control{}) req.Attribute("objectClass", []string{"group"}) @@ -25,6 +25,10 @@ func (c *Client) CreateGroup(dn, name, description, groupType, managedBy string, req.Attribute("managedBy", []string{managedBy}) } + if displayName != "" { + req.Attribute("displayName", []string{displayName}) + } + if len(members) > 0 { req.Attribute("member", members) } @@ -80,7 +84,7 @@ func (c *Client) ReadGroup(dn string, memberPageSize int) (attributes map[string 0, false, "(objectclass=group)", - []string{"name", "description", "groupType", "managedBy"}, + []string{"name", "description", "groupType", "managedBy", "displayName"}, []ldap.Control{}, ) @@ -204,6 +208,16 @@ func (c *Client) UpdateGroupManagedBy(dn string, managedBy string) error { return c.Conn.Modify(req) } +// UpdateGroupDisplayName updates ldap group displayName +func (c *Client) UpdateGroupDisplayName(dn string, displayName string) error { + + req := ldap.NewModifyRequest(dn, []ldap.Control{}) + + req.Replace("displayName", []string{displayName}) + + return c.Conn.Modify(req) +} + // DeleteGroup deletes the specify group func (c *Client) DeleteGroup(dn string) error { diff --git a/group_test.go b/group_test.go index 05e0b62..fa753c4 100644 --- a/group_test.go +++ b/group_test.go @@ -14,7 +14,7 @@ func TestCreateGroup(t *testing.T) { t.FailNow() } - err = client.CreateGroup(os.Getenv("GOLDAP_TESTGROUP"), os.Getenv("GOLDAP_TESTNAME"), os.Getenv("GOLDAP_TESTDESC"), "", "", []string{}) + err = client.CreateGroup(os.Getenv("GOLDAP_TESTGROUP"), os.Getenv("GOLDAP_TESTNAME"), os.Getenv("GOLDAP_TESTDESC"), "", "", "", []string{}) if err != nil { fmt.Printf("%s", err) t.FailNow()