Перейти до основного контенту

RoleManager API

RoleManager

RoleManager надає інтерфейс для визначення операцій з управління ролями. Додавання функції відповідності до RoleManager дозволяє використовувати символи підстановки в назвах ролей та доменах.

AddNamedMatchingFunc()

Функція AddNamedMatchingFunc додає MatchingFunc за Ptype до RoleManager. MatchingFunc буде використовуватися при виконанні відповідності ролей.

    e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil

Наприклад:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)

AddNamedDomainMatchingFunc()

Функція AddNamedDomainMatchingFunc додає MatchingFunc за Ptype до RoleManager. DomainMatchingFunc схожа на MatchingFunc, зазначену вище.

Наприклад:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)

GetRoleManager()

Функція GetRoleManager отримує поточний менеджер ролей для g.

Наприклад:

    rm := e.GetRoleManager()

GetNamedRoleManager()

Функція GetNamedRoleManager отримує менеджер ролей за іменованим Ptype.

Наприклад:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

Функція SetRoleManager встановлює поточний менеджер ролей для g.

Наприклад:

    e.SetRoleManager(rm)

SetNamedRoleManager()

Функція SetNamedRoleManager встановлює менеджер ролей за іменованим Ptype.

Наприклад:

    rm := e.SetNamedRoleManager("g2", rm)

Clear()

Функція Clear очищає всі збережені дані та скидає менеджер ролей до його початкового стану.

Наприклад:

    rm.Clear()

AddLink додає зв'язок спадкоємності між двома ролями. роль: name1 та роль: name2. Домен є префіксом до ролей (може використовуватися для інших цілей).

Наприклад:

    rm.AddLink("u1", "g1", "domain1")

DeleteLink видаляє зв'язок спадкоємності між двома ролями. роль: name1 та роль: name2. Домен є префіксом до ролей (може використовуватися для інших цілей).

Наприклад:

    rm.DeleteLink("u1", "g1", "domain1")

HasLink визначає, чи існує зв'язок між двома ролями. роль: name1 успадковує роль: name2. Домен є префіксом до ролей (може використовуватися для інших цілей).

Наприклад:

    rm.HasLink("u1", "g1", "domain1")

GetRoles()

GetRoles отримує ролі, які успадковує користувач. Домен є префіксом до ролей (може використовуватися для інших цілей).

Наприклад:

    rm.GetRoles("u1", "domain1")

GetUsers()

GetUsers отримує користувачів, які успадковують роль. Домен є префіксом до користувачів (може використовуватися для інших цілей).

Наприклад:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles друкує всі ролі в журнал.

Наприклад:

    rm.PrintRoles()

SetLogger()

SetLogger встановлює логер менеджера ролей.

Наприклад:

    logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()

GetDomains()

GetDomains отримує домени, які має користувач

Наприклад:

    result, err := rm.GetDomains(name)