UNPKG

@lcsf/acl

Version:

权限控制模块

71 lines (70 loc) 1.9 kB
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>; }