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

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)