UNPKG

@lanaqi/rsr

Version:
178 lines (177 loc) 3.73 kB
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; }