@lcsf/acl
Version:
权限控制模块
71 lines (70 loc) • 1.9 kB
TypeScript
import { Observable } from 'rxjs';
import { LcACLType, LcACLCanType, AuthModelList } from './lc-acl.type';
/**
*
* 务必在根目录注册 `LcAclModule.forRoot()` 才能使用服务
*/
export declare class LcAClService {
private options;
private roles;
private types;
private permissionGroups;
private authPaths;
private full;
private aclChange;
/** ACL变更通知 */
get change(): Observable<LcACLType | boolean | null>;
/** 获取所有数据 */
get data(): {
full: boolean;
roles: string[];
permissionGroups: string[];
authPaths: Map<string, string>;
};
constructor();
private parseLcACLType;
/**
* 设置当前用户角色或权限能力(会先清除所有)
*/
set(value: LcACLType): void;
/**
* 标识当前用户为全量,即不受限
*/
setFull(val: boolean): void;
/**
* 设置当前用户角色(会先清除所有)
*/
setRole(roles: string[]): void;
/**
* 为当前用户增加角色或权限能力
*/
add(value: LcACLType): void;
/**
* 为当前用户附加角色
*/
attachRole(roles: string[]): void;
/**
* 为当前用户移除角色
*/
removeRole(roles: string[]): void;
/**
* 当前用户是否有对应角色,其实 `number` 表示Ability
*
* - 当 `full: true` 或参数 `null` 时返回 `true`
* - 若使用 `LcACLType` 参数,可以指定 `mode` 校验模式
*/
can(roleOrAbility: LcACLCanType | null): boolean;
/**
* 路由权限拦截
* @param url
* @returns
*/
canAuthUrl(url: string): boolean;
/**
* 获取当前url对应是哪一个model_id
* @param url
* @returns
*/
getUrlModeId(url: string): string;
getAuthPaths(value: AuthModelList[]): Map<string, string>;
}