RoleManager API
RoleManager
RoleManager는 역할을 관리하기 위한 작업을 정의하는 인터페이스를 제공합니다. RoleManager에 일치 함수를 추가하면 역할 이름과 도메인에서 와일드카드를 사용할 수 있습니다.
AddNamedMatchingFunc()
AddNamedMatchingFunc
함수는 Ptype에 따라 MatchingFunc
를 RoleManager에 추가합니다. MatchingFunc
는 역할 매칭을 수행할 때 사용됩니다.
- Go
- Node.js
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
예를 들면:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
AddNamedDomainMatchingFunc
함수는 Ptype에 따라 MatchingFunc
를 RoleManager에 추가합니다. DomainMatchingFunc
은 위에 나열된 MatchingFunc
와 유사합니다.
예를 들면:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
GetRoleManager
함수는 g
에 대한 현재 역할 관리자를 가져옵니다.
예를 들면:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
GetNamedRoleManager
함수는 명명된 Ptype에 의해 역할 관리자를 가져옵니다.
예를 들면:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
SetRoleManager
함수는 g
에 대한 현재 역할 관리자를 설정합니다.
예를 들면:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
SetNamedRoleManager
함수는 명명된 Ptype에 의해 역할 관리자를 설정합니다.
예를 들면:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("g2", rm)
Clear()
Clear
함수는 모든 저장된 데이터를 지우고 역할 관리자를 초기 상태로 재설정합니다.
예를 들면:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
AddLink는 두 역할 사이의 상속 링크를 추가합니다. 역할: name1 및 역할: name2. 도메인은 역할에 대한 접두사입니다(다른 목적으로 사용할 수 있음).
예를 들면:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
DeleteLink는 두 역할 사이의 상속 링크를 삭제합니다. 역할: name1 및 역할: name2. 도메인은 역할에 대한 접두사입니다(다른 목적으로 사용할 수 있음).
예를 들면:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
HasLink는 두 역할 사이에 링크가 있는지 확인합니다. 역할: name1은 역할: name2를 상속합니다. 도메인은 역할의 접두사입니다 (다른 목적으로 사용할 수 있음).
예를 들면:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("u1", "g1", "domain1")
GetRoles()
GetRoles는 사용자가 상속받는 역할을 가져옵니다. 도메인은 역할의 접두사입니다 (다른 목적으로 사용할 수 있음).
예를 들면:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
GetUsers는 역할을 상속받는 사용자를 가져옵니다. 도메인은 사용자의 접두사입니다 (다른 목적으로 사용할 수 있음).
예를 들면:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRoles는 모든 역할을 로그에 출력합니다.
예를 들면:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger는 역할 관리자의 로거를 설정합니다.
예를 들면:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains는 사용자가 가진 도메인을 가져옵니다.
예를 들면:
- Go
result, err := rm.GetDomains(name)