From 25c009ad0ad9a7a131e46570c755ec8a14cc2a9d Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Mon, 18 Oct 2021 17:45:38 +0200 Subject: [PATCH] fix: project grant join (#2525) * fix: project grant join granted org name * fix: search granted projects --- internal/api/grpc/management/project.go | 2 +- internal/query/project_grant.go | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/internal/api/grpc/management/project.go b/internal/api/grpc/management/project.go index a638091bbf..bd35fec66c 100644 --- a/internal/api/grpc/management/project.go +++ b/internal/api/grpc/management/project.go @@ -63,7 +63,7 @@ func (s *Server) ListGrantedProjects(ctx context.Context, req *mgmt_pb.ListGrant if err != nil { return nil, err } - err = queries.AppendMyResourceOwnerQuery(authz.GetCtxData(ctx).OrgID) + err = queries.AppendGrantedOrgQuery(authz.GetCtxData(ctx).OrgID) if err != nil { return nil, err } diff --git a/internal/query/project_grant.go b/internal/query/project_grant.go index 8b058bd9a9..d470bfd7f5 100644 --- a/internal/query/project_grant.go +++ b/internal/query/project_grant.go @@ -190,6 +190,10 @@ func NewProjectGrantResourceOwnerSearchQuery(value string) (SearchQuery, error) return NewTextQuery(ProjectGrantColumnResourceOwner, value, TextEquals) } +func NewProjectGrantGrantedOrgIDSearchQuery(value string) (SearchQuery, error) { + return NewTextQuery(ProjectGrantColumnGrantedOrgID, value, TextEquals) +} + func (r *ProjectGrantSearchQueries) AppendMyResourceOwnerQuery(orgID string) error { query, err := NewProjectGrantResourceOwnerSearchQuery(orgID) if err != nil { @@ -199,6 +203,15 @@ func (r *ProjectGrantSearchQueries) AppendMyResourceOwnerQuery(orgID string) err return nil } +func (r *ProjectGrantSearchQueries) AppendGrantedOrgQuery(orgID string) error { + query, err := NewProjectGrantGrantedOrgIDSearchQuery(orgID) + if err != nil { + return err + } + r.Queries = append(r.Queries, query) + return nil +} + func (r ProjectGrantSearchQueries) AppendPermissionQueries(permissions []string) error { if !authz.HasGlobalPermission(permissions) { ids := authz.GetAllPermissionCtxIDs(permissions) @@ -240,7 +253,7 @@ func prepareProjectGrantQuery() (sq.SelectBuilder, func(*sql.Row) (*ProjectGrant From(projectGrantsTable.identifier()).PlaceholderFormat(sq.Dollar). LeftJoin(join(ProjectColumnID, ProjectGrantColumnProjectID)). LeftJoin(join(resourceOwnerIDColumn, ProjectGrantColumnResourceOwner)). - LeftJoin(join(grantedOrgIDColumn, ProjectGrantColumnResourceOwner)), + LeftJoin(join(grantedOrgIDColumn, ProjectGrantColumnGrantedOrgID)), func(row *sql.Row) (*ProjectGrant, error) { p := new(ProjectGrant) err := row.Scan( @@ -289,8 +302,8 @@ func prepareProjectGrantsQuery() (sq.SelectBuilder, func(*sql.Rows) (*ProjectGra From(projectGrantsTable.identifier()).PlaceholderFormat(sq.Dollar). LeftJoin(join(ProjectColumnID, ProjectGrantColumnProjectID)). LeftJoin(join(resourceOwnerIDColumn, ProjectGrantColumnResourceOwner)). - LeftJoin(join(grantedOrgIDColumn, ProjectGrantColumnResourceOwner)), - func(rows *sql.Rows) (*ProjectGrants, error) { + LeftJoin(join(grantedOrgIDColumn, ProjectGrantColumnGrantedOrgID)), + func(rows *sql.Rows) (*ProjectGrants, error) { projects := make([]*ProjectGrant, 0) var count uint64 for rows.Next() {