diff --git a/internal/api/grpc/user/user_grant.go b/internal/api/grpc/user/user_grant.go index eb7f2be2051..14ec8f6395d 100644 --- a/internal/api/grpc/user/user_grant.go +++ b/internal/api/grpc/user/user_grant.go @@ -39,9 +39,9 @@ func UserGrantToPb(assetPrefix string, grant *query.UserGrant) *user_pb.UserGran AvatarUrl: domain.AvatarURL(assetPrefix, grant.UserResourceOwner, grant.AvatarURL), PreferredLoginName: grant.PreferredLoginName, UserType: TypeToPb(grant.UserType), - GrantedOrgId: grant.GrantedOrgID, - GrantedOrgName: grant.GrantedOrgName, - GrantedOrgDomain: grant.GrantedOrgDomain, + GrantedOrgId: grant.UserResourceOwner, + GrantedOrgName: grant.UserResourceOwnerName, + GrantedOrgDomain: grant.UserResourceOwnerDomain, Details: object.ToViewDetailsPb( grant.Sequence, grant.CreationDate, diff --git a/internal/query/user_grant.go b/internal/query/user_grant.go index da38d488215..6a527c92c81 100644 --- a/internal/query/user_grant.go +++ b/internal/query/user_grant.go @@ -30,16 +30,18 @@ type UserGrant struct { GrantID string `json:"grant_id,omitempty"` State domain.UserGrantState `json:"state,omitempty"` - UserID string `json:"user_id,omitempty"` - Username string `json:"username,omitempty"` - UserType domain.UserType `json:"user_type,omitempty"` - UserResourceOwner string `json:"user_resource_owner,omitempty"` - FirstName string `json:"first_name,omitempty"` - LastName string `json:"last_name,omitempty"` - Email string `json:"email,omitempty"` - DisplayName string `json:"display_name,omitempty"` - AvatarURL string `json:"avatar_url,omitempty"` - PreferredLoginName string `json:"preferred_login_name,omitempty"` + UserID string `json:"user_id,omitempty"` + Username string `json:"username,omitempty"` + UserType domain.UserType `json:"user_type,omitempty"` + UserResourceOwner string `json:"user_resource_owner,omitempty"` + UserResourceOwnerName string `json:"user_resource_owner_name,omitempty"` + UserResourceOwnerDomain string `json:"user_resource_owner_domain,omitempty"` + FirstName string `json:"first_name,omitempty"` + LastName string `json:"last_name,omitempty"` + Email string `json:"email,omitempty"` + DisplayName string `json:"display_name,omitempty"` + AvatarURL string `json:"avatar_url,omitempty"` + PreferredLoginName string `json:"preferred_login_name,omitempty"` ResourceOwner string `json:"resource_owner,omitempty"` OrgName string `json:"org_name,omitempty"` @@ -257,6 +259,25 @@ var ( name: projection.UserGrantState, table: userGrantTable, } + + UserOrgsTable = table{ + name: projection.OrgProjectionTable, + alias: "user_orgs", + instanceIDCol: projection.OrgColumnInstanceID, + } + UserOrgColumnId = Column{ + name: projection.OrgColumnID, + table: UserOrgsTable, + } + UserOrgColumnName = Column{ + name: projection.OrgColumnName, + table: UserOrgsTable, + } + UserOrgColumnDomain = Column{ + name: projection.OrgColumnDomain, + table: UserOrgsTable, + } + GrantedOrgsTable = table{ name: projection.OrgProjectionTable, alias: "granted_orgs", @@ -366,7 +387,9 @@ func prepareUserGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*UserGrant, erro UserGrantUserID.identifier(), UserUsernameCol.identifier(), UserTypeCol.identifier(), - UserResourceOwnerCol.identifier(), + UserOrgColumnId.identifier(), + UserOrgColumnName.identifier(), + UserOrgColumnDomain.identifier(), HumanFirstNameCol.identifier(), HumanLastNameCol.identifier(), HumanEmailCol.identifier(), @@ -391,6 +414,7 @@ func prepareUserGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*UserGrant, erro LeftJoin(join(HumanUserIDCol, UserGrantUserID)). LeftJoin(join(OrgColumnID, UserGrantResourceOwner)). LeftJoin(join(ProjectColumnID, UserGrantProjectID)). + LeftJoin(join(UserOrgColumnId, UserResourceOwnerCol)). LeftJoin(join(ProjectGrantColumnGrantID, UserGrantGrantID) + " AND " + ProjectGrantColumnProjectID.identifier() + " = " + UserGrantProjectID.identifier()). LeftJoin(join(GrantedOrgColumnId, ProjectGrantColumnGrantedOrgID)). LeftJoin(join(LoginNameUserIDCol, UserGrantUserID)). @@ -405,6 +429,8 @@ func prepareUserGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*UserGrant, erro firstName sql.NullString userType sql.NullInt32 userOwner sql.NullString + userOwnerName sql.NullString + userOwnerDomain sql.NullString lastName sql.NullString email sql.NullString displayName sql.NullString @@ -435,6 +461,8 @@ func prepareUserGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*UserGrant, erro &username, &userType, &userOwner, + &userOwnerName, + &userOwnerDomain, &firstName, &lastName, &email, @@ -464,6 +492,8 @@ func prepareUserGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*UserGrant, erro g.Username = username.String g.UserType = domain.UserType(userType.Int32) g.UserResourceOwner = userOwner.String + g.UserResourceOwnerName = userOwnerName.String + g.UserResourceOwnerDomain = userOwnerDomain.String g.FirstName = firstName.String g.LastName = lastName.String g.Email = email.String @@ -494,7 +524,9 @@ func prepareUserGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*UserGrants, e UserGrantUserID.identifier(), UserUsernameCol.identifier(), UserTypeCol.identifier(), - UserResourceOwnerCol.identifier(), + UserOrgColumnId.identifier(), + UserOrgColumnName.identifier(), + UserOrgColumnDomain.identifier(), HumanFirstNameCol.identifier(), HumanLastNameCol.identifier(), HumanEmailCol.identifier(), @@ -521,6 +553,7 @@ func prepareUserGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*UserGrants, e LeftJoin(join(HumanUserIDCol, UserGrantUserID)). LeftJoin(join(OrgColumnID, UserGrantResourceOwner)). LeftJoin(join(ProjectColumnID, UserGrantProjectID)). + LeftJoin(join(UserOrgColumnId, UserResourceOwnerCol)). LeftJoin(join(ProjectGrantColumnGrantID, UserGrantGrantID) + " AND " + ProjectGrantColumnProjectID.identifier() + " = " + UserGrantProjectID.identifier()). LeftJoin(join(GrantedOrgColumnId, ProjectGrantColumnGrantedOrgID)). LeftJoin(join(LoginNameUserIDCol, UserGrantUserID)). @@ -537,6 +570,8 @@ func prepareUserGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*UserGrants, e username sql.NullString userType sql.NullInt32 userOwner sql.NullString + userOwnerName sql.NullString + userOwnerDomain sql.NullString firstName sql.NullString lastName sql.NullString email sql.NullString @@ -568,6 +603,8 @@ func prepareUserGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*UserGrants, e &username, &userType, &userOwner, + &userOwnerName, + &userOwnerDomain, &firstName, &lastName, &email, @@ -596,6 +633,8 @@ func prepareUserGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*UserGrants, e g.Username = username.String g.UserType = domain.UserType(userType.Int32) g.UserResourceOwner = userOwner.String + g.UserResourceOwnerName = userOwnerName.String + g.UserResourceOwnerDomain = userOwnerDomain.String g.FirstName = firstName.String g.LastName = lastName.String g.Email = email.String diff --git a/internal/query/user_grant_test.go b/internal/query/user_grant_test.go index dde04f2c884..f79ae78a80e 100644 --- a/internal/query/user_grant_test.go +++ b/internal/query/user_grant_test.go @@ -25,7 +25,9 @@ var ( ", projections.user_grants5.user_id" + ", projections.users14.username" + ", projections.users14.type" + - ", projections.users14.resource_owner" + + ", user_orgs.id" + + ", user_orgs.name" + + ", user_orgs.primary_domain" + ", projections.users14_humans.first_name" + ", projections.users14_humans.last_name" + ", projections.users14_humans.email" + @@ -46,6 +48,7 @@ var ( " LEFT JOIN projections.users14_humans ON projections.user_grants5.user_id = projections.users14_humans.user_id AND projections.user_grants5.instance_id = projections.users14_humans.instance_id" + " LEFT JOIN projections.orgs1 ON projections.user_grants5.resource_owner = projections.orgs1.id AND projections.user_grants5.instance_id = projections.orgs1.instance_id" + " LEFT JOIN projections.projects4 ON projections.user_grants5.project_id = projections.projects4.id AND projections.user_grants5.instance_id = projections.projects4.instance_id" + + " LEFT JOIN projections.orgs1 AS user_orgs ON projections.users14.resource_owner = user_orgs.id AND projections.users14.instance_id = user_orgs.instance_id" + " LEFT JOIN projections.project_grants4 ON projections.user_grants5.grant_id = projections.project_grants4.grant_id AND projections.user_grants5.instance_id = projections.project_grants4.instance_id AND projections.project_grants4.project_id = projections.user_grants5.project_id" + " LEFT JOIN projections.orgs1 AS granted_orgs ON projections.project_grants4.granted_org_id = granted_orgs.id AND projections.project_grants4.instance_id = granted_orgs.instance_id" + " LEFT JOIN projections.login_names3 ON projections.user_grants5.user_id = projections.login_names3.user_id AND projections.user_grants5.instance_id = projections.login_names3.instance_id" + @@ -62,6 +65,8 @@ var ( "username", "type", "resource_owner", //user resource owner + "name", + "primary_domain", "first_name", "last_name", "email", @@ -89,7 +94,9 @@ var ( ", projections.user_grants5.user_id" + ", projections.users14.username" + ", projections.users14.type" + - ", projections.users14.resource_owner" + + ", user_orgs.id" + + ", user_orgs.name" + + ", user_orgs.primary_domain" + ", projections.users14_humans.first_name" + ", projections.users14_humans.last_name" + ", projections.users14_humans.email" + @@ -111,6 +118,7 @@ var ( " LEFT JOIN projections.users14_humans ON projections.user_grants5.user_id = projections.users14_humans.user_id AND projections.user_grants5.instance_id = projections.users14_humans.instance_id" + " LEFT JOIN projections.orgs1 ON projections.user_grants5.resource_owner = projections.orgs1.id AND projections.user_grants5.instance_id = projections.orgs1.instance_id" + " LEFT JOIN projections.projects4 ON projections.user_grants5.project_id = projections.projects4.id AND projections.user_grants5.instance_id = projections.projects4.instance_id" + + " LEFT JOIN projections.orgs1 AS user_orgs ON projections.users14.resource_owner = user_orgs.id AND projections.users14.instance_id = user_orgs.instance_id" + " LEFT JOIN projections.project_grants4 ON projections.user_grants5.grant_id = projections.project_grants4.grant_id AND projections.user_grants5.instance_id = projections.project_grants4.instance_id AND projections.project_grants4.project_id = projections.user_grants5.project_id" + " LEFT JOIN projections.orgs1 AS granted_orgs ON projections.project_grants4.granted_org_id = granted_orgs.id AND projections.project_grants4.instance_id = granted_orgs.instance_id" + " LEFT JOIN projections.login_names3 ON projections.user_grants5.user_id = projections.login_names3.user_id AND projections.user_grants5.instance_id = projections.login_names3.instance_id" + @@ -168,7 +176,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -188,32 +198,34 @@ func Test_UserGrantPrepares(t *testing.T) { ), }, object: &UserGrant{ - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, { @@ -234,7 +246,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeMachine, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", nil, nil, nil, @@ -254,32 +268,34 @@ func Test_UserGrantPrepares(t *testing.T) { ), }, object: &UserGrant{ - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeMachine, - UserResourceOwner: "resource-owner", - FirstName: "", - LastName: "", - Email: "", - DisplayName: "", - AvatarURL: "", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeMachine, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "", + LastName: "", + Email: "", + DisplayName: "", + AvatarURL: "", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, { @@ -300,7 +316,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -320,32 +338,34 @@ func Test_UserGrantPrepares(t *testing.T) { ), }, object: &UserGrant{ - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "", - OrgPrimaryDomain: "", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "", + OrgPrimaryDomain: "", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, { @@ -366,7 +386,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -386,32 +408,34 @@ func Test_UserGrantPrepares(t *testing.T) { ), }, object: &UserGrant{ - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "", - ProjectResourceOwner: "", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "", + ProjectResourceOwner: "", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, { @@ -432,7 +456,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -452,32 +478,34 @@ func Test_UserGrantPrepares(t *testing.T) { ), }, object: &UserGrant{ - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, { @@ -528,7 +556,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -554,32 +584,34 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, }, @@ -603,7 +635,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeMachine, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", nil, nil, nil, @@ -629,32 +663,34 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeMachine, - UserResourceOwner: "resource-owner", - FirstName: "", - LastName: "", - Email: "", - DisplayName: "", - AvatarURL: "", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeMachine, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "", + LastName: "", + Email: "", + DisplayName: "", + AvatarURL: "", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, }, @@ -678,7 +714,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeMachine, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -704,32 +742,34 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeMachine, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "", - OrgPrimaryDomain: "", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeMachine, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "", + OrgPrimaryDomain: "", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, }, @@ -753,7 +793,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -779,32 +821,34 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "", - ProjectResourceOwner: "", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "", + ProjectResourceOwner: "", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, }, @@ -828,7 +872,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -854,32 +900,34 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, }, @@ -903,7 +951,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -931,7 +981,9 @@ func Test_UserGrantPrepares(t *testing.T) { "user-id", "username", domain.UserTypeHuman, - "resource-owner", + "user-resource-owner", + "user-resource-owner-name", + "user-resource-owner-domain", "first-name", "last-name", "email", @@ -957,60 +1009,64 @@ func Test_UserGrantPrepares(t *testing.T) { }, UserGrants: []*UserGrant{ { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, { - ID: "id", - CreationDate: testNow, - ChangeDate: testNow, - Sequence: 20211111, - Roles: database.TextArray[string]{"role-key"}, - GrantID: "grant-id", - State: domain.UserGrantStateActive, - UserID: "user-id", - Username: "username", - UserType: domain.UserTypeHuman, - UserResourceOwner: "resource-owner", - FirstName: "first-name", - LastName: "last-name", - Email: "email", - DisplayName: "display-name", - AvatarURL: "avatar-key", - PreferredLoginName: "login-name", - ResourceOwner: "ro", - OrgName: "org-name", - OrgPrimaryDomain: "primary-domain", - ProjectID: "project-id", - ProjectName: "project-name", - ProjectResourceOwner: "project-resource-owner", - GrantedOrgID: "granted-org-id", - GrantedOrgName: "granted-org-name", - GrantedOrgDomain: "granted-org-domain", + ID: "id", + CreationDate: testNow, + ChangeDate: testNow, + Sequence: 20211111, + Roles: database.TextArray[string]{"role-key"}, + GrantID: "grant-id", + State: domain.UserGrantStateActive, + UserID: "user-id", + Username: "username", + UserType: domain.UserTypeHuman, + UserResourceOwner: "user-resource-owner", + UserResourceOwnerName: "user-resource-owner-name", + UserResourceOwnerDomain: "user-resource-owner-domain", + FirstName: "first-name", + LastName: "last-name", + Email: "email", + DisplayName: "display-name", + AvatarURL: "avatar-key", + PreferredLoginName: "login-name", + ResourceOwner: "ro", + OrgName: "org-name", + OrgPrimaryDomain: "primary-domain", + ProjectID: "project-id", + ProjectName: "project-name", + ProjectResourceOwner: "project-resource-owner", + GrantedOrgID: "granted-org-id", + GrantedOrgName: "granted-org-name", + GrantedOrgDomain: "granted-org-domain", }, }, },