@lanaqi/rsr
Version:
184 lines (183 loc) • 4.61 kB
TypeScript
import { AccessBehave, AccessDecision, type AccessPath } from './common';
import type { AccessContext } from './context';
/**
* 访问处理器
*/
export interface AccessHandler {
/**
* 没有资源
* @param context 上下文
*/
notResource(context: AccessContext): AccessBehave;
/**
* 没有认证
* @param context 上下文
*/
notAuthentication(context: AccessContext): AccessBehave;
/**
* 无效认证
* @param context 上下文
*/
invalidAuthentication(context: AccessContext): AccessBehave;
/**
* 没有授权
* @param context 上下文
*/
notAuthorization(context: AccessContext): AccessBehave;
/**
* 没有签名
* @param context 上下文
*/
notSignature(context: AccessContext): AccessBehave;
/**
* 访问拒绝
* @param context 上下文
*/
accessDenied(context: AccessContext): AccessBehave;
/**
* 允许访问
* @param context 上下文
*/
allowAccess(context: AccessContext): AccessBehave;
/**
* 错误决策
* @param context 上下文
* @param decision 决策
*/
errorDecision(context: AccessContext, decision: AccessDecision): void;
}
/**
* 行为路径
*/
export type BehavePath = string | Partial<AccessPath>;
/**
* 行为配置
*/
export type BehaveConfig = {
/**
* 没有资源路径值
*/
readonly notResourcePath?: BehavePath;
/**
* 没有资源函数
* @param context 上下文
*/
readonly notResourceFunc?: (context: AccessContext) => AccessBehave;
/**
* 没有认证路径值
*/
readonly notAuthenticationPath?: BehavePath;
/**
* 没有认证函数
* @param context 上下文
*/
readonly notAuthenticationFunc?: (context: AccessContext) => AccessBehave;
/**
* 无效认证路径值
*/
readonly invalidAuthenticationPath?: BehavePath;
/**
* 无效认证函数
* @param context 上下文
*/
readonly invalidAuthenticationFunc?: (context: AccessContext) => AccessBehave;
/**
* 没有授权路径值
*/
readonly notAuthorizationPath?: BehavePath;
/**
* 没有授权函数
* @param context 上下文
*/
readonly notAuthorizationFunc?: (context: AccessContext) => AccessBehave;
/**
* 没有签名路径值
*/
readonly notSignaturePath?: BehavePath;
/**
* 没有签名函数
* @param context 上下文
*/
readonly notSignatureFunc?: (context: AccessContext) => AccessBehave;
/**
* 拒绝访问路径值
*/
readonly accessDeniedPath?: BehavePath;
/**
* 拒绝访问函数
* @param context 上下文
*/
readonly accessDeniedFunc?: (context: AccessContext) => AccessBehave;
/**
* 允许访问函数
* @param context 上下文
*/
readonly allowAccessFunc?: (context: AccessContext) => void;
/**
* 错误决策函数
* @param context 上下文
* @param decision 决策
*/
readonly errorDecisionFunc?: (context: AccessContext, decision: AccessDecision) => void;
};
/**
* 行为处理器
*/
export declare class BehaveHandler implements AccessHandler {
/**
* 行为配置
* @private
*/
private _config;
/**
* 构造函数
* @param config 行为配置
*/
constructor(config: BehaveConfig);
/**
* 覆盖配置
* @param config 行为配置
*/
config(config: BehaveConfig): void;
/**
* 没有资源
* @param context 上下文
*/
notResource(context: AccessContext): AccessBehave;
/**
* 没有认证
* @param context 上下文
*/
notAuthentication(context: AccessContext): AccessBehave;
/**
* 无效认证
* @param context 上下文
*/
invalidAuthentication(context: AccessContext): AccessBehave;
/**
* 没有授权
* @param context 上下文
*/
notAuthorization(context: AccessContext): AccessBehave;
/**
* 没有签名
* @param context 上下文
*/
notSignature(context: AccessContext): AccessBehave;
/**
* 拒绝访问
* @param context 上下文
*/
accessDenied(context: AccessContext): AccessBehave;
/**
* 允许访问
* @param context 上下文
*/
allowAccess(context: AccessContext): AccessBehave;
/**
* 错误决策
* @param context 上下文
* @param decision 决策
*/
errorDecision(context: AccessContext, decision: AccessDecision): void;
}