api report and minor fixes
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
@@ -19,6 +19,7 @@ import { JsonValue } from '@backstage/types';
|
||||
import { LocationEntityV1alpha1 } from '@backstage/catalog-model';
|
||||
import { Logger } from 'winston';
|
||||
import { Permission } from '@backstage/plugin-permission-common';
|
||||
import { PermissionAuthorizer } from '@backstage/plugin-permission-common';
|
||||
import { PermissionCondition } from '@backstage/plugin-permission-common';
|
||||
import { PermissionCriteria } from '@backstage/plugin-permission-common';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
@@ -181,7 +182,7 @@ export type CatalogEnvironment = {
|
||||
database: PluginDatabaseManager;
|
||||
config: Config;
|
||||
reader: UrlReader;
|
||||
permissions: PermissionEvaluator;
|
||||
permissions: PermissionEvaluator | PermissionAuthorizer;
|
||||
};
|
||||
|
||||
// @alpha
|
||||
|
||||
@@ -382,13 +382,13 @@ export class CatalogBuilder {
|
||||
const unauthorizedEntitiesCatalog = new DefaultEntitiesCatalog(dbClient);
|
||||
|
||||
let permissionEvaluator: PermissionEvaluator;
|
||||
if (!permissions.hasOwnProperty('query')) {
|
||||
if ('query' in permissions) {
|
||||
permissionEvaluator = permissions as PermissionEvaluator;
|
||||
} else {
|
||||
logger.warn(
|
||||
'PermissionAuthorizer is deprecated. Please use PermissionEvaluator instead of PermissionAuthorizer in catalog.ts',
|
||||
'PermissionAuthorizer is deprecated. Please use an instance of PermissionEvaluator instead of PermissionAuthorizer in PluginEnvironment#permissions',
|
||||
);
|
||||
permissionEvaluator = toPermissionEvaluator(permissions);
|
||||
} else {
|
||||
permissionEvaluator = permissions as PermissionEvaluator;
|
||||
}
|
||||
|
||||
const entitiesCatalog = new AuthorizedEntitiesCatalog(
|
||||
|
||||
@@ -8,6 +8,7 @@ import { CompoundEntityRef } from '@backstage/catalog-model';
|
||||
import { Config } from '@backstage/config';
|
||||
import express from 'express';
|
||||
import { Logger } from 'winston';
|
||||
import { PermissionAuthorizer } from '@backstage/plugin-permission-common';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
|
||||
// Warning: (ae-missing-release-tag) "createRouter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
|
||||
@@ -98,6 +99,6 @@ export interface RouterOptions {
|
||||
// (undocumented)
|
||||
logger: Logger;
|
||||
// (undocumented)
|
||||
permissions?: PermissionEvaluator;
|
||||
permissions?: PermissionEvaluator | PermissionAuthorizer;
|
||||
}
|
||||
```
|
||||
|
||||
@@ -40,11 +40,11 @@ export async function createRouter(
|
||||
const { jenkinsInfoProvider, permissions, logger } = options;
|
||||
|
||||
let permissionEvaluator: PermissionEvaluator | undefined;
|
||||
if (permissions?.hasOwnProperty('query')) {
|
||||
if (permissions && 'query' in permissions) {
|
||||
permissionEvaluator = permissions as PermissionEvaluator;
|
||||
} else {
|
||||
logger.warn(
|
||||
'PermissionAuthorizer is deprecated. Please use PermissionEvaluator instead of PermissionAuthorizer in your jenkins.ts',
|
||||
'PermissionAuthorizer is deprecated. Please use an instance of PermissionEvaluator instead of PermissionAuthorizer in PluginEnvironment#permissions',
|
||||
);
|
||||
permissionEvaluator = permissions
|
||||
? toPermissionEvaluator(permissions)
|
||||
|
||||
@@ -225,4 +225,9 @@ export type ResourcePermission<TResourceType extends string = string> =
|
||||
resourceType: TResourceType;
|
||||
}
|
||||
>;
|
||||
|
||||
// @public
|
||||
export function toPermissionEvaluator(
|
||||
permissionAuthorizer: PermissionAuthorizer,
|
||||
): PermissionEvaluator;
|
||||
```
|
||||
|
||||
@@ -87,6 +87,11 @@ export function isDeletePermission(permission: Permission) {
|
||||
return permission.attributes.action === 'delete';
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert {@link PermissionAuthorizer} to {@link PermissionEvaluator}.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export function toPermissionEvaluator(
|
||||
permissionAuthorizer: PermissionAuthorizer,
|
||||
): PermissionEvaluator {
|
||||
@@ -103,8 +108,8 @@ export function toPermissionEvaluator(
|
||||
requests: QueryPermissionRequest[],
|
||||
options?: EvaluatorRequestOptions,
|
||||
): Promise<QueryPermissionResponse[]> {
|
||||
// @ts-expect-error
|
||||
const parsedRequests: AuthorizePermissionRequest[] = requests;
|
||||
const parsedRequests =
|
||||
requests as unknown as AuthorizePermissionRequest[];
|
||||
return permissionAuthorizer.authorize(parsedRequests, options);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@ import { Config } from '@backstage/config';
|
||||
import { DocumentTypeInfo } from '@backstage/plugin-search-common';
|
||||
import express from 'express';
|
||||
import { Logger } from 'winston';
|
||||
import { PermissionAuthorizer } from '@backstage/plugin-permission-common';
|
||||
import { PermissionEvaluator } from '@backstage/plugin-permission-common';
|
||||
import { SearchEngine } from '@backstage/plugin-search-backend-node';
|
||||
|
||||
@@ -21,7 +22,7 @@ export function createRouter(options: RouterOptions): Promise<express.Router>;
|
||||
export type RouterOptions = {
|
||||
engine: SearchEngine;
|
||||
types: Record<string, DocumentTypeInfo>;
|
||||
permissions: PermissionEvaluator;
|
||||
permissions: PermissionEvaluator | PermissionAuthorizer;
|
||||
config: Config;
|
||||
logger: Logger;
|
||||
};
|
||||
|
||||
@@ -76,13 +76,13 @@ export async function createRouter(
|
||||
});
|
||||
|
||||
let permissionEvaluator: PermissionEvaluator;
|
||||
if (!permissions.hasOwnProperty('query')) {
|
||||
if ('query' in permissions) {
|
||||
permissionEvaluator = permissions as PermissionEvaluator;
|
||||
} else {
|
||||
logger.warn(
|
||||
'PermissionAuthorizer is deprecated. Please use PermissionEvaluator instead of PermissionAuthorizer in search.ts',
|
||||
'PermissionAuthorizer is deprecated. Please use an instance of PermissionEvaluator instead of PermissionAuthorizer in PluginEnvironment#permissions',
|
||||
);
|
||||
permissionEvaluator = toPermissionEvaluator(permissions);
|
||||
} else {
|
||||
permissionEvaluator = permissions as PermissionEvaluator;
|
||||
}
|
||||
|
||||
const engine = config.getOptionalBoolean('permission.enabled')
|
||||
|
||||
Reference in New Issue
Block a user