Avoid PermissionEvaluator breaking changes

Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
Vincenzo Scamporlino
2022-04-05 12:47:28 +02:00
parent 8b27170d30
commit 173aadff5b
5 changed files with 102 additions and 15 deletions
+20 -4
View File
@@ -20,22 +20,38 @@ import Router from 'express-promise-router';
import { Logger } from 'winston';
import { JenkinsInfoProvider } from './jenkinsInfoProvider';
import { JenkinsApiImpl } from './jenkinsApi';
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
import {
PermissionAuthorizer,
PermissionEvaluator,
toPermissionEvaluator,
} from '@backstage/plugin-permission-common';
import { getBearerTokenFromAuthorizationHeader } from '@backstage/plugin-auth-node';
import { stringifyEntityRef } from '@backstage/catalog-model';
export interface RouterOptions {
logger: Logger;
jenkinsInfoProvider: JenkinsInfoProvider;
permissions?: PermissionEvaluator;
permissions?: PermissionEvaluator | PermissionAuthorizer;
}
export async function createRouter(
options: RouterOptions,
): Promise<express.Router> {
const { jenkinsInfoProvider } = options;
const { jenkinsInfoProvider, permissions, logger } = options;
const jenkinsApi = new JenkinsApiImpl(options.permissions);
let permissionEvaluator: PermissionEvaluator | undefined;
if (permissions?.hasOwnProperty('query')) {
permissionEvaluator = permissions as PermissionEvaluator;
} else {
logger.warn(
'PermissionAuthorizer is deprecated. Please use PermissionEvaluator instead of PermissionAuthorizer in your jenkins.ts',
);
permissionEvaluator = permissions
? toPermissionEvaluator(permissions)
: undefined;
}
const jenkinsApi = new JenkinsApiImpl(permissionEvaluator);
const router = Router();
router.use(express.json());