@lanaqi/rsr
Version:
178 lines (177 loc) • 3.73 kB
TypeScript
import type { AccessPermission, AccessPermissions } from './common';
/**
* 访问认证
*/
export interface AccessAuthentication {
/**
* 是否已认证
*/
isAuthenticated(): boolean;
/**
* 设置已认证
* @param authenticated 已认证
*/
setAuthenticated(authenticated: boolean): void;
}
/**
* 访问授权
*/
export interface AccessAuthorization {
/**
* 获取权限集合
*/
getPermissions(): Set<AccessPermission>;
}
/**
* 访问数据表
*/
export interface AccessDatasheet<Datasheet> {
/**
* 获取数据表
*/
getDatasheet(): Datasheet;
}
/**
* 认证数据表
*/
export type AuthenticationDatasheet<P = unknown> = P & {
/**
* 已认证
*/
readonly authenticated: boolean;
};
/**
* 授权数据表
*/
export type AuthorizationDatasheet<P = unknown> = P & {
/**
* 权限集合
*/
readonly permissions: AccessPermissions | Set<AccessPermission>;
};
/**
* 用户数据表
*/
export type UserDatasheet<P = unknown> = P & AuthenticationDatasheet<P> & AuthorizationDatasheet<P> & {
/**
* 无效的
*/
readonly invalid?: boolean;
};
/**
* 简单认证
*/
export declare class SimpleAuthentication<Datasheet> implements AccessAuthentication, AccessDatasheet<AuthenticationDatasheet<Datasheet>> {
/**
* 数据表
* @private
*/
private readonly datasheet;
/**
* 已认证
* @private
*/
private authenticated;
/**
* 构造函数
* @param datasheet 数据表
*/
constructor(datasheet: AuthenticationDatasheet<Datasheet>);
/**
* 是否已认证
*/
isAuthenticated(): boolean;
/**
* 设置已认证
* @param authenticated 已认证
*/
setAuthenticated(authenticated: boolean): void;
/**
* 获取数据表
*/
getDatasheet(): AuthenticationDatasheet<Datasheet>;
}
/**
* 简单授权
*/
export declare class SimpleAuthorization<Datasheet> implements AccessAuthorization, AccessDatasheet<AuthorizationDatasheet<Datasheet>> {
/**
* 数据表
* @private
*/
private readonly datasheet;
/**
* 权限集合
* @private
*/
private readonly permissions;
/**
* 构造函数
* @param datasheet 数据表
*/
constructor(datasheet: AuthorizationDatasheet<Datasheet>);
/**
* 获取权限集合
*/
getPermissions(): Set<AccessPermission>;
/**
* 获取数据表
*/
getDatasheet(): AuthorizationDatasheet<Datasheet>;
}
/**
* 简单用户
*/
export declare class SimpleUser<Datasheet> implements AccessAuthentication, AccessAuthorization, AccessDatasheet<UserDatasheet<Datasheet>> {
/**
* 数据表
* @private
*/
private readonly datasheet;
/**
* 权限集合
* @private
*/
private readonly permissions;
/**
* 已认证
* @private
*/
private authenticated;
/**
* 无效的
* @private
*/
private invalid;
/**
* 构造函数
* @param datasheet 数据表
*/
constructor(datasheet: UserDatasheet<Datasheet>);
/**
* 是否已认证
*/
isAuthenticated(): boolean;
/**
* 设置已认证
* @param authenticated 已认证
*/
setAuthenticated(authenticated: boolean): void;
/**
* 获取权限集合
*/
getPermissions(): Set<AccessPermission>;
/**
* 获取数据表
*/
getDatasheet(): UserDatasheet<Datasheet>;
/**
* 是否无效的
*/
isInvalid(): boolean;
/**
* 设置无效的
* @param invalid 无效的
*/
setInvalid(invalid: boolean): void;
}