diff --git a/pkg/connector/project.go b/pkg/connector/project.go index bd30636d..5e690341 100644 --- a/pkg/connector/project.go +++ b/pkg/connector/project.go @@ -37,13 +37,14 @@ func projectResource(project *linear.Project, parentId *v2.ResourceId) (*v2.Reso "project_slug": project.SlugID, "project_id": project.ID, } - groupTraitOptions := []rs.GroupTraitOption{rs.WithGroupProfile(profile)} + groupTraitOptions := []rs.GroupTraitOption{} ret, err := rs.NewGroupResource( project.Name, resourceTypeProject, project.ID, groupTraitOptions, + rs.WithResourceProfile(profile), rs.WithParentResourceID(parentId), ) @@ -120,12 +121,7 @@ func (o *projectResourceType) Grants(ctx context.Context, resource *v2.Resource, return nil, "", nil, err } - projectTrait, err := rs.GetGroupTrait(resource) - if err != nil { - return nil, "", nil, err - } - - projectId, ok := rs.GetProfileStringValue(projectTrait.Profile, "project_id") + projectId, ok := rs.GetProfileStringValue(rs.GetProfile(resource), "project_id") if !ok { return nil, "", nil, fmt.Errorf("error fetching project_id from project profile") } diff --git a/pkg/connector/role.go b/pkg/connector/role.go index f9abc2b1..a35a0203 100644 --- a/pkg/connector/role.go +++ b/pkg/connector/role.go @@ -46,15 +46,14 @@ func roleResource(ctx context.Context, role string, parentResourceID *v2.Resourc "role_id": role, } - roleTraitOptions := []resource.RoleTraitOption{ - resource.WithRoleProfile(profile), - } + roleTraitOptions := []resource.RoleTraitOption{} ret, err := resource.NewRoleResource( roleDisplayName, resourceTypeRole, role, roleTraitOptions, + resource.WithResourceProfile(profile), resource.WithParentResourceID(parentResourceID), ) if err != nil { diff --git a/pkg/connector/team.go b/pkg/connector/team.go index 2ae9903b..0f72216f 100644 --- a/pkg/connector/team.go +++ b/pkg/connector/team.go @@ -18,7 +18,7 @@ import ( ) var ( - _ connectorbuilder.ResourceSyncer = (*teamResourceType)(nil) + _ connectorbuilder.ResourceSyncer = (*teamResourceType)(nil) _ connectorbuilder.ResourceProvisioner = (*teamResourceType)(nil) ) @@ -40,13 +40,14 @@ func teamResource(team *linear.Team, parentResourceID *v2.ResourceId) (*v2.Resou "team_name": team.Name, } - groupTraitOptions := []rs.GroupTraitOption{rs.WithGroupProfile(profile)} + groupTraitOptions := []rs.GroupTraitOption{} ret, err := rs.NewGroupResource( team.Name, resourceTypeTeam, team.ID, groupTraitOptions, + rs.WithResourceProfile(profile), rs.WithParentResourceID(parentResourceID), ) if err != nil { diff --git a/pkg/connector/user.go b/pkg/connector/user.go index 4b74cee4..580e0fd1 100644 --- a/pkg/connector/user.go +++ b/pkg/connector/user.go @@ -16,9 +16,9 @@ import ( ) var ( - _ connectorbuilder.ResourceSyncer = (*userResourceType)(nil) - _ connectorbuilder.AccountManagerLimited = (*userResourceType)(nil) - _ connectorbuilder.ResourceDeleterLimited = (*userResourceType)(nil) + _ connectorbuilder.ResourceSyncer = (*userResourceType)(nil) + _ connectorbuilder.AccountManagerLimited = (*userResourceType)(nil) + _ connectorbuilder.ResourceDeleterLimited = (*userResourceType)(nil) ) const userRoleProfileKey = "user_role" @@ -65,9 +65,7 @@ func userResource(ctx context.Context, user *linear.User, parentResourceID *v2.R } userTraitOptions := []sdkResource.UserTraitOption{ - sdkResource.WithUserProfile(profile), sdkResource.WithEmail(user.Email, true), - sdkResource.WithStatus(v2.UserTrait_Status_STATUS_ENABLED), } ret, err := sdkResource.NewUserResource( @@ -75,6 +73,8 @@ func userResource(ctx context.Context, user *linear.User, parentResourceID *v2.R resourceTypeUser, user.ID, userTraitOptions, + sdkResource.WithResourceProfile(profile), + sdkResource.WithResourceStatus(v2.Status_RESOURCE_STATUS_ENABLED, ""), sdkResource.WithParentResourceID(parentResourceID), ) if err != nil { @@ -125,11 +125,7 @@ func (o *userResourceType) Entitlements(_ context.Context, _ *v2.Resource, _ *pa func (o *userResourceType) Grants(ctx context.Context, resource *v2.Resource, pt *pagination.Token) ([]*v2.Grant, string, annotations.Annotations, error) { var rv []*v2.Grant - userTrait, err := sdkResource.GetUserTrait(resource) - if err != nil { - return nil, "", nil, fmt.Errorf("list-grants: Failed to get user trait from user: %w", err) - } - userProfile := userTrait.GetProfile() + userProfile := sdkResource.GetProfile(resource) userRole, present := sdkResource.GetProfileStringValue(userProfile, userRoleProfileKey) if !present { return nil, "", nil, fmt.Errorf("list-grants: user role was not present on profile")