aclatraz
Version:
Simple dependency-free package for ACL. It can handle hundreds of roles easily.
24 lines (23 loc) • 1.1 kB
TypeScript
import { AclRule } from './interface/aclRule.interface';
import { AclConfig } from './interface/aclConfig.interface';
export declare class Aclatraz {
protected rules: AclRule[];
protected defaultConfig: AclConfig;
protected options: AclConfig;
constructor(aclRules?: AclRule[], options?: Partial<AclConfig>);
addRule(aclRule: AclRule): void;
setRule(id: number, aclRule: Partial<AclRule>): void;
delRule(id: number): void;
setOptions(aclConfig: Partial<AclConfig>): void;
getRules(): AclRule[];
verify(permission: string, ruleId: number): boolean;
generateAclCode(ruleIdList: number[]): string;
generateRuleTemplate(): string;
grantPermission(currentPermission: string, ruleList: number[]): string;
revokePermission(currentPermission: string, ruleList: number[]): string;
protected encode(aclBinary: string, chunkSize: number): string;
protected decode(permission: string): string;
protected getMaxAclId(): number;
protected decodeToBigInt(permission: string): bigint;
protected encodeFromBigInt(aclNumber: bigint): string;
}