@omnia/fx-models
Version:
Provide Omnia Fx Models Stuffs.
70 lines (69 loc) • 2.08 kB
TypeScript
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 };