diff --git a/plugins/permission-react/src/apis/IdentityPermissionApi.ts b/plugins/permission-react/src/apis/IdentityPermissionApi.ts index 80d4eb8859..0bb46f5587 100644 --- a/plugins/permission-react/src/apis/IdentityPermissionApi.ts +++ b/plugins/permission-react/src/apis/IdentityPermissionApi.ts @@ -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 { + 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];