MT AuthZ: Resolve renderer permissions in MT authZ service (#99362)

* resolve renderer permissions in MT authZ service

* also include DS read perms

* fix tests and linting
This commit is contained in:
Ieva
2025-01-23 10:21:43 +00:00
committed by GitHub
parent 4fb7b47971
commit 723fa7ddf9
4 changed files with 61 additions and 12 deletions
+5 -1
View File
@@ -41,9 +41,13 @@ func (c *Render) Authenticate(ctx context.Context, r *authn.Request) (*authn.Ide
}
if renderUsr.UserID <= 0 {
identityType := claims.TypeAnonymous
if org.RoleType(renderUsr.OrgRole) == org.RoleAdmin {
identityType = claims.TypeRenderService
}
return &authn.Identity{
ID: "0",
Type: claims.TypeRenderService,
Type: identityType,
OrgID: renderUsr.OrgID,
OrgRoles: map[int64]org.RoleType{renderUsr.OrgID: org.RoleType(renderUsr.OrgRole)},
ClientParams: authn.ClientParams{SyncPermissions: true},
+25 -3
View File
@@ -29,7 +29,29 @@ func TestRender_Authenticate(t *testing.T) {
tests := []TestCase{
{
desc: "expect valid render key to return render user identity",
desc: "expect valid render key to return anonymous user identity for org role Viewer",
renderKey: "123",
req: &authn.Request{
HTTPRequest: &http.Request{
Header: map[string][]string{"Cookie": {"renderKey=123"}},
},
},
expectedIdentity: &authn.Identity{
ID: "0",
Type: claims.TypeAnonymous,
OrgID: 1,
OrgRoles: map[int64]org.RoleType{1: org.RoleViewer},
AuthenticatedBy: login.RenderModule,
ClientParams: authn.ClientParams{SyncPermissions: true},
},
expectedRenderUsr: &rendering.RenderUser{
OrgID: 1,
UserID: 0,
OrgRole: "Viewer",
},
},
{
desc: "expect valid render key to return render user identity for org role Admin",
renderKey: "123",
req: &authn.Request{
HTTPRequest: &http.Request{
@@ -40,14 +62,14 @@ func TestRender_Authenticate(t *testing.T) {
ID: "0",
Type: claims.TypeRenderService,
OrgID: 1,
OrgRoles: map[int64]org.RoleType{1: org.RoleViewer},
OrgRoles: map[int64]org.RoleType{1: org.RoleAdmin},
AuthenticatedBy: login.RenderModule,
ClientParams: authn.ClientParams{SyncPermissions: true},
},
expectedRenderUsr: &rendering.RenderUser{
OrgID: 1,
UserID: 0,
OrgRole: "Viewer",
OrgRole: "Admin",
},
},
{