RoleManager API
RoleManager
RoleManager надає інтерфейс для визначення операцій з управління ролями. Додавання функції відповідності до RoleManager дозволяє використовувати символи підстановки в назвах ролей та доменах.
AddNamedMatchingFunc()
Функція AddNamedMatchingFunc
додає MatchingFunc
за Ptype до 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
додає MatchingFunc
за Ptype до 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)