diff --git a/pkg/server/api/connect/v1/types/membership.go b/pkg/server/api/connect/v1/types/membership.go index e29b2d976..ce40d2c88 100644 --- a/pkg/server/api/connect/v1/types/membership.go +++ b/pkg/server/api/connect/v1/types/membership.go @@ -69,9 +69,6 @@ func NewMembership(membership *coredata.Membership) *Membership { Organization: &Organization{ ID: membership.OrganizationID, }, - Profile: &MembershipProfile{ - ID: membership.ID, - }, Role: membership.Role, Source: membership.Source, State: membership.State, diff --git a/pkg/server/api/connect/v1/v1_resolver.go b/pkg/server/api/connect/v1/v1_resolver.go index 2248310d7..c81e1b100 100644 --- a/pkg/server/api/connect/v1/v1_resolver.go +++ b/pkg/server/api/connect/v1/v1_resolver.go @@ -246,15 +246,7 @@ func (r *membershipResolver) Identity(ctx context.Context, obj *types.Membership // Profile is the resolver for the profile field. func (r *membershipResolver) Profile(ctx context.Context, obj *types.Membership) (*types.MembershipProfile, error) { - if err := r.authorize(ctx, obj.Profile.ID, iam.ActionMembershipProfileGet); err != nil { - return nil, err - } - - if gqlutils.OnlyIDSelected(ctx) { - return &types.MembershipProfile{ - ID: obj.Profile.ID, - }, nil - } + // TODO: PorfileID must leave on membership to allow perform the ACL lookup first and load after. profile, err := r.iam.AccountService.GetProfileForMembership(ctx, obj.ID) if err != nil { @@ -267,6 +259,10 @@ func (r *membershipResolver) Profile(ctx context.Context, obj *types.Membership) return nil, gqlutils.Internal(ctx) } + if err := r.authorize(ctx, profile.ID, iam.ActionMembershipProfileGet); err != nil { + return nil, err + } + return types.NewMembershipProfile(profile), nil }