Export permission criteria utilities
Signed-off-by: Vincenzo Scamporlino <me@vinzscam.dev>
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
||||
|
||||
```ts
|
||||
import { AllOfCriteria } from '@backstage/plugin-permission-common';
|
||||
import { AnyOfCriteria } from '@backstage/plugin-permission-common';
|
||||
import { AuthorizeDecision } from '@backstage/plugin-permission-common';
|
||||
import { AuthorizeQuery } from '@backstage/plugin-permission-common';
|
||||
import { AuthorizeRequestOptions } from '@backstage/plugin-permission-common';
|
||||
@@ -11,6 +13,7 @@ import { BackstageIdentityResponse } from '@backstage/plugin-auth-node';
|
||||
import { Config } from '@backstage/config';
|
||||
import express from 'express';
|
||||
import { Identified } from '@backstage/plugin-permission-common';
|
||||
import { NotCriteria } 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';
|
||||
@@ -118,6 +121,21 @@ export type DefinitivePolicyDecision = {
|
||||
result: AuthorizeResult.ALLOW | AuthorizeResult.DENY;
|
||||
};
|
||||
|
||||
// @alpha
|
||||
export const isAndCriteria: <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
) => criteria is AllOfCriteria<T>;
|
||||
|
||||
// @alpha
|
||||
export const isNotCriteria: <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
) => criteria is NotCriteria<T>;
|
||||
|
||||
// @alpha
|
||||
export const isOrCriteria: <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
) => criteria is AnyOfCriteria<T>;
|
||||
|
||||
// @public
|
||||
export const makeCreatePermissionRule: <TResource, TQuery>() => <
|
||||
TParams extends unknown[],
|
||||
|
||||
@@ -19,3 +19,4 @@ export * from './createConditionExports';
|
||||
export * from './createConditionTransformer';
|
||||
export * from './createPermissionIntegrationRouter';
|
||||
export * from './createPermissionRule';
|
||||
export { isAndCriteria, isOrCriteria, isNotCriteria } from './util';
|
||||
|
||||
@@ -22,20 +22,44 @@ import {
|
||||
} from '@backstage/plugin-permission-common';
|
||||
import { PermissionRule } from '../types';
|
||||
|
||||
export const isAndCriteria = (
|
||||
filter: PermissionCriteria<unknown>,
|
||||
): filter is AllOfCriteria<unknown> =>
|
||||
Object.prototype.hasOwnProperty.call(filter, 'allOf');
|
||||
/**
|
||||
* Utility function used to parse a PermissionCriteria
|
||||
* @param criteria - a PermissionCriteria
|
||||
* @alpha
|
||||
*
|
||||
* @returns `true` if the permission criteria is of type allOf,
|
||||
* narrowing down `criteria` to the specific type.
|
||||
*/
|
||||
export const isAndCriteria = <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
): criteria is AllOfCriteria<T> =>
|
||||
Object.prototype.hasOwnProperty.call(criteria, 'allOf');
|
||||
|
||||
export const isOrCriteria = (
|
||||
filter: PermissionCriteria<unknown>,
|
||||
): filter is AnyOfCriteria<unknown> =>
|
||||
Object.prototype.hasOwnProperty.call(filter, 'anyOf');
|
||||
/**
|
||||
* Utility function used to parse a PermissionCriteria of type
|
||||
* @param criteria - a PermissionCriteria
|
||||
* @alpha
|
||||
*
|
||||
* @returns `true` if the permission criteria is of type anyOf,
|
||||
* narrowing down `criteria` to the specific type.
|
||||
*/
|
||||
export const isOrCriteria = <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
): criteria is AnyOfCriteria<T> =>
|
||||
Object.prototype.hasOwnProperty.call(criteria, 'anyOf');
|
||||
|
||||
export const isNotCriteria = (
|
||||
filter: PermissionCriteria<unknown>,
|
||||
): filter is NotCriteria<unknown> =>
|
||||
Object.prototype.hasOwnProperty.call(filter, 'not');
|
||||
/**
|
||||
* Utility function used to parse a PermissionCriteria
|
||||
* @param criteria - a PermissionCriteria
|
||||
* @alpha
|
||||
*
|
||||
* @returns `true` if the permission criteria is of type not,
|
||||
* narrowing down `criteria` to the specific type.
|
||||
*/
|
||||
export const isNotCriteria = <T>(
|
||||
criteria: PermissionCriteria<T>,
|
||||
): criteria is NotCriteria<T> =>
|
||||
Object.prototype.hasOwnProperty.call(criteria, 'not');
|
||||
|
||||
export const createGetRule = <TResource, TQuery>(
|
||||
rules: PermissionRule<TResource, TQuery>[],
|
||||
|
||||
Reference in New Issue
Block a user