@@ -18,6 +18,8 @@ import (
1818 "github.com/conductorone/baton-jira-datacenter/pkg/client"
1919)
2020
21+ const _member = "member"
22+
2123type groupBuilder struct {
2224 client * client.Client
2325}
@@ -69,13 +71,20 @@ func (g *groupBuilder) List(ctx context.Context, parentResourceID *v2.ResourceId
6971}
7072
7173func (g * groupBuilder ) Entitlements (ctx context.Context , resource * v2.Resource , _ * pagination.Token ) ([]* v2.Entitlement , string , annotations.Annotations , error ) {
72- var rv []* v2.Entitlement
7374 groupId := resource .Id .Resource
7475 groupRoles , err := g .client .GetGroupLabelRoles (ctx , groupId )
7576 if err != nil {
7677 return nil , "" , nil , err
7778 }
7879
80+ rv := make ([]* v2.Entitlement , 0 , len (groupRoles )+ 1 )
81+ rv = append (rv , ent .NewAssignmentEntitlement (
82+ resource ,
83+ _member ,
84+ ent .WithGrantableTo (userResourceType ),
85+ ent .WithDisplayName (fmt .Sprintf ("%s Group Member" , resource .DisplayName )),
86+ ent .WithDescription (fmt .Sprintf ("member access to %s group in Jira DC" , resource .DisplayName )),
87+ ))
7988 for _ , groupRole := range groupRoles {
8089 permission := groupRole .Text
8190 // create entitlements for each project role
@@ -130,6 +139,8 @@ func (g *groupBuilder) Grants(ctx context.Context, resource *v2.Resource, pToken
130139 membershipGrant := grant .NewGrant (resource , permission , ur .Id )
131140 rv = append (rv , membershipGrant )
132141 }
142+
143+ rv = append (rv , grant .NewGrant (resource , _member , ur .Id ))
133144 }
134145 return rv , "" , nil , nil
135146}
0 commit comments