UNPKG

casbin

Version:

An authorization library that supports access control models like ACL, RBAC, ABAC in Node.JS

89 lines (88 loc) 3.17 kB
import { RoleManager } from './roleManager'; export type MatchingFunc = (arg1: string, arg2: string) => boolean; export declare class DefaultRoleManager implements RoleManager { private allDomains; private maxHierarchyLevel; private hasPattern; private hasDomainPattern; private hasDomainHierarchy; private domainHierarchyManager; private matchingFunc; private domainMatchingFunc; /** * DefaultRoleManager is the constructor for creating an instance of the * default RoleManager implementation. * * @param maxHierarchyLevel the maximized allowed RBAC hierarchy level. */ constructor(maxHierarchyLevel: number); /** * addMatchingFunc support use pattern in g * @param name name * @param fn matching function * @deprecated */ addMatchingFunc(name: string, fn: MatchingFunc): Promise<void>; /** * addMatchingFunc support use pattern in g * @param fn matching function */ addMatchingFunc(fn: MatchingFunc): Promise<void>; /** * addDomainMatchingFunc support use domain pattern in g * @param fn domain matching function * ``` */ addDomainMatchingFunc(fn: MatchingFunc): Promise<void>; /** * addDomainHierarchy sets a rolemanager to define role inheritance between domains * @param rm RoleManager to define domain hierarchy */ addDomainHierarchy(rm: RoleManager): Promise<void>; private generateTempRoles; /** * addLink adds the inheritance link between role: name1 and role: name2. * aka role: name1 inherits role: name2. * domain is a prefix to the roles. */ addLink(name1: string, name2: string, ...domain: string[]): Promise<void>; /** * clear clears all stored data and resets the role manager to the initial state. */ clear(): Promise<void>; /** * deleteLink deletes the inheritance link between role: name1 and role: name2. * aka role: name1 does not inherit role: name2 any more. * domain is a prefix to the roles. */ deleteLink(name1: string, name2: string, ...domain: string[]): Promise<void>; /** * hasLink determines whether role: name1 inherits role: name2. * domain is a prefix to the roles. */ syncedHasLink(name1: string, name2: string, ...domain: string[]): boolean; hasLink(name1: string, name2: string, ...domain: string[]): Promise<boolean>; /** * getRoles gets the roles that a subject inherits. * domain is a prefix to the roles. */ getRoles(name: string, ...domain: string[]): Promise<string[]>; /** * getUsers gets the users that inherits a subject. * domain is an unreferenced parameter here, may be used in other implementations. */ getUsers(name: string, ...domain: string[]): Promise<string[]>; /** * printRoles prints all the roles to log. */ printRoles(): Promise<void>; /** * getDomains gets domains that a user has. */ getDomains(name: string): Promise<string[]>; /** * getAllDomains gets all domains. */ getAllDomains(): Promise<string[]>; private hasUserForRole; }