UNPKG

@omnia/fx-models

Version:
70 lines (69 loc) 2.08 kB
import { GuidValue } from "@omnia/fx-models/internal-do-not-import-from-here/shared/models"; import { Identity } from "./identities"; export interface SecurityRule { roleId: GuidValue; logicalOperator?: "OR" | "AND"; } export interface RolePermissionSetting { roleId: string; identities: Identity[]; } export interface PermissionBinding { identity: Identity; roleId: GuidValue; resource: string; appInstanceId?: GuidValue; readonly systemDefinedRules?: SecurityRule[]; } export declare enum OmniaRoleType { Tenant = 0, Global = 1, Custom = 2 } export interface RoleEvaluationResult { roleId: GuidValue; resource: string; hasPermission: boolean; parentRoleResult: RoleEvaluationResult; securityResultsRoleResult: { [roleId: string]: RoleEvaluationResult; }; editableRolesResult: { [roleId: string]: RoleEvaluationResult; }; } export interface OmniaRole { id: GuidValue; name: string; permissionEvaluatorType: string; resourceEvaluatorType: string; roleType: OmniaRoleType; parentRole?: GuidValue; rules: SecurityRule[]; } export interface AccessTokenInfo { resource: string; value: string; expiresOn: number; } declare abstract class RoleResourceEvaluator { abstract getRoleResourceWithContext(context: { [key: string]: string | number; }): Promise<string>; } declare abstract class RolePermissionEvaluator { abstract evaluateRoleWithContext(context: { [key: string]: string | number; }): Promise<boolean>; } declare class AppInstanceResourceEvaluator implements RoleResourceEvaluator { getRoleResourceWithContext(context: { [key: string]: string | number; }): Promise<string>; } declare class BusinessProfileResourceEvaluator implements RoleResourceEvaluator { getRoleResourceWithContext(context: { [key: string]: string | number; }): Promise<string>; } export { AppInstanceResourceEvaluator, BusinessProfileResourceEvaluator, RoleResourceEvaluator, RolePermissionEvaluator };