@jiumao/policy
Version:
[](https://npmjs.org/package/@jiumao/policy) [](https://npmjs.org/package/@jiumao/policy)
31 lines (30 loc) • 825 B
TypeScript
export interface IModuleAction {
[module: string]: string[];
}
export interface IAction {
module: string;
action: string;
}
export interface IStatement {
effect: 'allow' | 'deny';
action: '*' | string[];
}
export interface IPolicyData {
version: string | number;
statement: IStatement[];
}
declare class Policy {
private actions;
moduleMap: IModuleAction;
allowActions: string[];
denyActions: string[];
constructor(actions: IAction[]);
private getModuleMap;
combinationVerify: (actionStr: string) => boolean;
multipleVerify: (actions: string | string[]) => boolean;
singleVerify: (action: string) => boolean;
addPolicy: (policy: IPolicyData) => void;
private parseAction;
private getAllAction;
}
export default Policy;