From 8cc75993a627299ebfcf782c3cc2b5bee9d82008 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Thu, 14 Apr 2022 14:32:11 -0400 Subject: [PATCH] Fix PermissionEvaluator instance checks Signed-off-by: Joe Porpeglia --- .changeset/sixty-llamas-change.md | 7 +++++++ plugins/catalog-backend/src/service/CatalogBuilder.ts | 2 +- plugins/jenkins-backend/src/service/router.ts | 2 +- plugins/search-backend/src/service/router.ts | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changeset/sixty-llamas-change.md diff --git a/.changeset/sixty-llamas-change.md b/.changeset/sixty-llamas-change.md new file mode 100644 index 0000000000..a0d183d45c --- /dev/null +++ b/.changeset/sixty-llamas-change.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-catalog-backend': patch +'@backstage/plugin-jenkins-backend': patch +'@backstage/plugin-search-backend': patch +--- + +Fixed issue in `PermissionEvaluator` instance check that would cause unexpected "invalid union" errors. diff --git a/plugins/catalog-backend/src/service/CatalogBuilder.ts b/plugins/catalog-backend/src/service/CatalogBuilder.ts index f5f00cd0fc..57508615ac 100644 --- a/plugins/catalog-backend/src/service/CatalogBuilder.ts +++ b/plugins/catalog-backend/src/service/CatalogBuilder.ts @@ -382,7 +382,7 @@ export class CatalogBuilder { const unauthorizedEntitiesCatalog = new DefaultEntitiesCatalog(dbClient); let permissionEvaluator: PermissionEvaluator; - if ('query' in permissions) { + if ('authorizeConditional' in permissions) { permissionEvaluator = permissions as PermissionEvaluator; } else { logger.warn( diff --git a/plugins/jenkins-backend/src/service/router.ts b/plugins/jenkins-backend/src/service/router.ts index f6bd21c633..fa357f8e9f 100644 --- a/plugins/jenkins-backend/src/service/router.ts +++ b/plugins/jenkins-backend/src/service/router.ts @@ -40,7 +40,7 @@ export async function createRouter( const { jenkinsInfoProvider, permissions, logger } = options; let permissionEvaluator: PermissionEvaluator | undefined; - if (permissions && 'query' in permissions) { + if (permissions && 'authorizeConditional' in permissions) { permissionEvaluator = permissions as PermissionEvaluator; } else { logger.warn( diff --git a/plugins/search-backend/src/service/router.ts b/plugins/search-backend/src/service/router.ts index 11f0eb22e6..e42a31981c 100644 --- a/plugins/search-backend/src/service/router.ts +++ b/plugins/search-backend/src/service/router.ts @@ -76,7 +76,7 @@ export async function createRouter( }); let permissionEvaluator: PermissionEvaluator; - if ('query' in permissions) { + if ('authorizeConditional' in permissions) { permissionEvaluator = permissions as PermissionEvaluator; } else { logger.warn(