Fix IdentityPermissionApi typings

Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
Vincenzo Scamporlino
2022-03-24 10:07:10 +01:00
parent 8960a2bfed
commit b1bbb9c760
@@ -19,6 +19,7 @@ import { PermissionApi } from './PermissionApi';
import {
EvaluatePermissionRequest,
EvaluatePermissionResponse,
isResourcePermission,
PermissionClient,
} from '@backstage/plugin-permission-common';
import { Config } from '@backstage/config';
@@ -47,8 +48,21 @@ export class IdentityPermissionApi implements PermissionApi {
async authorize(
request: EvaluatePermissionRequest,
): Promise<EvaluatePermissionResponse> {
const { permission, resourceRef } = request;
if (isResourcePermission(permission)) {
if (!resourceRef) {
throw new Error(
'A resourceRef should be provided when a ResourcePermission is used.',
);
}
const response = await this.permissionClient.authorize(
[{ permission, resourceRef }],
await this.identityApi.getCredentials(),
);
return response[0];
}
const response = await this.permissionClient.authorize(
[request],
[{ permission }],
await this.identityApi.getCredentials(),
);
return response[0];