IdentityPermissionApi: strict typing

Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
Vincenzo Scamporlino
2022-03-28 22:58:43 +02:00
parent 1882dbda2b
commit e7f28d8152
3 changed files with 10 additions and 22 deletions
+4 -2
View File
@@ -4,6 +4,8 @@
```ts
import { ApiRef } from '@backstage/core-plugin-api';
import { AuthorizePermissionRequest } from '@backstage/plugin-permission-common';
import { AuthorizePermissionResponse } from '@backstage/plugin-permission-common';
import { ComponentProps } from 'react';
import { Config } from '@backstage/config';
import { DiscoveryApi } from '@backstage/core-plugin-api';
@@ -26,8 +28,8 @@ export type AsyncPermissionResult = {
export class IdentityPermissionApi implements PermissionApi {
// (undocumented)
authorize(
request: EvaluatePermissionRequest,
): Promise<EvaluatePermissionResponse>;
request: AuthorizePermissionRequest,
): Promise<AuthorizePermissionResponse>;
// (undocumented)
static create(options: {
config: Config;
@@ -17,9 +17,8 @@
import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api';
import { PermissionApi } from './PermissionApi';
import {
EvaluatePermissionRequest,
EvaluatePermissionResponse,
isResourcePermission,
AuthorizePermissionRequest,
AuthorizePermissionResponse,
PermissionClient,
} from '@backstage/plugin-permission-common';
import { Config } from '@backstage/config';
@@ -46,23 +45,10 @@ 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];
}
request: AuthorizePermissionRequest,
): Promise<AuthorizePermissionResponse> {
const response = await this.permissionClient.authorize(
[{ permission }],
[request],
await this.identityApi.getCredentials(),
);
return response[0];