Skip to content

Commit

Permalink
Merge pull request #95 from Ouest-France/membersnames
Browse files Browse the repository at this point in the history
Add members_names to ldap_group schema
  • Loading branch information
pablo-ruth authored May 22, 2023
2 parents eb53973 + c81a837 commit 2a825ef
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 3 deletions.
3 changes: 2 additions & 1 deletion docs/data-sources/group.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ data "ldap_group" "group" {
* `description` - Description attribute for the LDAP
* `group_type` - Type of the group
* `id` - The DN of the LDAP group.
* `members` - LDAP group members.
* `members` - LDAP DN of group members
* `members_names` - LDAP name of group members
* `managed_by` - ManagedBy attribute.
1 change: 1 addition & 0 deletions docs/resources/group.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ resource "ldap_group" "group" {

## Attribute Reference

* `members_names` - Names of the members
* `id` - The DN of the LDAP group.

## Import
Expand Down
10 changes: 9 additions & 1 deletion ldap/data_source_resource_ldap_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,15 @@ func dataSourceLDAPGroup() *schema.Resource {
Computed: true,
},
"members": {
Description: "LDAP group members.",
Description: "LDAP DN of group members DN",
Type: schema.TypeSet,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"members_names": {
Description: "LDAP group members names.",
Type: schema.TypeSet,
Computed: true,
Elem: &schema.Schema{
Expand Down
24 changes: 23 additions & 1 deletion ldap/resource_ldap_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package ldap
import (
"context"
"fmt"
"regexp"
"strings"

"github.com/Ouest-France/goldap"
Expand Down Expand Up @@ -46,14 +47,22 @@ func resourceLDAPGroup() *schema.Resource {
Optional: true,
},
"members": {
Description: " LDAP group members.",
Description: " LDAP group members DN",
Type: schema.TypeSet,
Optional: true,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"members_names": {
Description: "LDAP group members names.",
Type: schema.TypeSet,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
},
"group_type": {
Description: "Type of the group",
Type: schema.TypeString,
Expand Down Expand Up @@ -159,12 +168,25 @@ func resourceLDAPGroupRead(ctx context.Context, d *schema.ResourceData, m interf
}

members := []string{}
members_names := []string{}
for name, values := range attributes {
if name == "member" && len(values) >= 1 {
members = append(members, values...)

for _, member := range values {
regName := regexp.MustCompile(`CN=(.*?),`)
matches := regName.FindStringSubmatch(member)
if len(matches) == 2 {
members_names = append(members_names, matches[1])
}
}
}
}
err = d.Set("members", members)
if err != nil {
return diag.FromErr(err)
}
err = d.Set("members_names", members_names)

return diag.FromErr(err)
}
Expand Down

0 comments on commit 2a825ef

Please sign in to comment.