From f0952a37d81cc3702197df877418bee1af7de2f4 Mon Sep 17 00:00:00 2001 From: Nirav Parikh Date: Tue, 11 Oct 2022 14:49:56 +0530 Subject: [PATCH] Fixed creating project scoped role failed from cli --- CHANGELOG.md | 4 ++++ internal/dao/role.go | 13 +++++++++++++ pkg/service/rolepermission.go | 7 +++++++ 3 files changed, 24 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 53688b3..2f10125 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. ## Unreleased +## Fixed + +- Fixed creating project scoped role failed from cli [niravparikh05](https://github.com/niravparikh05) + ## [0.1.5] - 2022-10-10 ## Fixed diff --git a/internal/dao/role.go b/internal/dao/role.go index ed528f3..1579bcc 100644 --- a/internal/dao/role.go +++ b/internal/dao/role.go @@ -38,3 +38,16 @@ func GetRolePermissionsByScope(ctx context.Context, db bun.IDB, scope string) ([ } return r, nil } + +func GetRolePermissionsByNames(ctx context.Context, db bun.IDB, permissions ...string) ([]models.ResourcePermission, error) { + var r = []models.ResourcePermission{} + err := db.NewSelect().Table("authsrv_resourcepermission"). + ColumnExpr("authsrv_resourcepermission.name as name, authsrv_resourcepermission.description as description, authsrv_resourcepermission.scope as scope"). + Where("name IN (?)", bun.In(permissions)). + Where("authsrv_resourcepermission.trash = ?", false). + Scan(ctx, &r) + if err != nil { + return nil, err + } + return r, nil +} diff --git a/pkg/service/rolepermission.go b/pkg/service/rolepermission.go index d471d05..74fb55d 100644 --- a/pkg/service/rolepermission.go +++ b/pkg/service/rolepermission.go @@ -92,6 +92,13 @@ func (s *rolepermissionService) List(ctx context.Context, opts ...query.Option) } rles = append(rles, rps...) } + // add partner and organization read roles as it is organization scoped yet required by all + rps, err := dao.GetRolePermissionsByNames(ctx, s.db, partnerR, organizationR) + if err != nil { + return rolepermissionList, err + } + rles = append(rles, rps...) + for _, rle := range rles { entry := &rolev3.RolePermission{} entry = s.toV3Rolepermission(entry, &rle)