UNPKG

@lanaqi/rsr

Version:
93 lines (92 loc) 3.66 kB
import type { AccessDecision, AccessPath } from './common'; import type { AccessContext } from './context'; import type { AccessManager } from './manager'; import type { AccessResource } from './resource'; /** * 访问插件 */ export interface AccessAddon { /** * 守护之前 * @param context 上下文 * @param manager 管理器 * @param currentPath 当前路径 * @param currentResource 当前资源 */ guardBefore(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null): void; /** * 守护之后 * @param context 上下文 * @param manager 管理器 * @param currentPath 当前路径 * @param currentResource 当前资源 * @param currentDecision 当前决策 */ guardAfter(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null, currentDecision: AccessDecision): void; /** * 许可之前 * @param context 上下文 * @param manager 管理器 * @param stayPath 停留路径 * @param blockPath 阻断路径 * @param stayResource 停留资源 * @param blockResource 阻断资源 */ permitBefore(context: AccessContext, manager: AccessManager, stayPath: AccessPath, blockPath: AccessPath, stayResource: AccessResource | null, blockResource: AccessResource | null): void; /** * 许可之后函数 * @param context 上下文 * @param manager 管理器 * @param stayPath 停留路径 * @param blockPath 阻断路径 * @param stayResource 停留资源 * @param blockResource 阻断资源 */ permitAfter(context: AccessContext, manager: AccessManager, stayPath: AccessPath, blockPath: AccessPath, stayResource: AccessResource | null, blockResource: AccessResource | null): void; } /** * 访问插件集合 */ export type AccessAddons = AccessAddon[]; /** * 抽象的访问插件 */ export declare abstract class AbstractAddon implements AccessAddon { /** * 守护之前 * @param context 上下文 * @param manager 管理器 * @param currentPath 当前路径 * @param currentResource 当前资源 */ guardBefore(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null): void; /** * 守护之后 * @param context 上下文 * @param manager 管理器 * @param currentPath 当前路径 * @param currentResource 当前资源 * @param currentDecision 当前决策 */ guardAfter(context: AccessContext, manager: AccessManager, currentPath: AccessPath, currentResource: AccessResource | null, currentDecision: AccessDecision): void; /** * 许可之前 * @param context 上下文 * @param manager 管理器 * @param stayPath 停留路径 * @param blockPath 阻断路径 * @param stayResource 停留资源 * @param blockResource 阻断资源 */ permitBefore(context: AccessContext, manager: AccessManager, stayPath: AccessPath, blockPath: AccessPath, stayResource: AccessResource | null, blockResource: AccessResource | null): void; /** * 许可之后函数 * @param context 上下文 * @param manager 管理器 * @param stayPath 停留路径 * @param blockPath 阻断路径 * @param stayResource 停留资源 * @param blockResource 阻断资源 */ permitAfter(context: AccessContext, manager: AccessManager, stayPath: AccessPath, blockPath: AccessPath, stayResource: AccessResource | null, blockResource: AccessResource | null): void; }