RoleManager API
发布者:admin 发表于:417天前 阅读数:536 评论:0

RoleManager API

RoleManager

RoleManager provides interface to define the operations for managing roles. Adding matching function to rolemanager allows using wildcards in role name and domain.

[]()AddNamedMatchingFunc()AddNamedMatchingFunc add MatchingFunc by ptype RoleManager. MatchingFunc将在操作角色匹配时工作。

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

例如:

Go

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

[]()AddNamedDomainMatchingFunc()AddNamedDomainMatchingFunc 通过 ptype 把MatchingFunc 添加到 RoleManager中。 DomainMatchingFunc 类似于上面列出的 MatchingFunc

例如:

Go

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

[]()GetRoleManager()GetRoleManager 获取现存的 g 的role manager。

例如:

Go

rm := e.GetRoleManager()

[]()Clear()Clear清除所有存储的数据并将角色管理器重置到初始状态。

例如:

Go

rm.Clear()

[]()AddLink()AddLink添加了两个角色之间的继承链接。 角色: 名称1 和 角色: 名称2 Domain is a prefix to the roles (can be used for other purposes).

例如:

Go

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

[]()DeleteLink()DeleteLink deletes the inheritance link between two roles. role: name1 and role: name2. Domain is a prefix to the roles (can be used for other purposes).

例如:

Go

rm := DeleteLink("u1", "g1", "domain1")

[]()HasLink()HasLink determines whether a link exists between two roles. role: name1 inherits role: name2. Domain is a prefix to the roles (can be used for other purposes).

例如:

Go

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

[]()GetRoles()GetRoles gets the roles that a user inherits. Domain is a prefix to the roles (can be used for other purposes).

例如:

Go

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

[]()GetUsers()GetUsers gets the users that inherits a role. Domain is a prefix to the users (can be used for other purposes).

例如:

Go

rm.GetUsers("g1")

[]()PrintRoles()PrintRoles prints all the roles to log.

例如:

Go

rm.PrintRoles()

[]()SetLogger()SetLogger设置角色管理器的日志。

例如:

Go

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

[]()GetDomains()GetDomains gets domains that a user has

For example:

Go

result, err := rm.GetDomains(name)