跳转至主要内容

角色管理器API

角色管理器

RoleManager提供接口来定义管理角色的操作。 添加匹配函数到角色管理器允许在角色名称和域中使用通配符。

AddNamedMatchingFunc()

AddNamedMatchingFunc 通过 ptype 角色管理器添加MatchingFunc 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 通过 ptype 把MatchingFunc 添加到 RoleManager中。 DomainMatchingFunc 类似于上面列出的 MatchingFunc

For example:

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

GetRoleManager()

GetRoleManager 获取现存的 g 的role manager。

例如:

    rm := e.GetRoleManager()

GetNamedRoleManager()

GetNamedRoleManager通过命名的ptype 获取角色管理器。

例如:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

GetRoleManager 获取现存的 g 的role manager。

例如:

    e.SetRoleManager(rm)

SetNamedRoleManager()

SetNamedRoleManager 将角色管理员设置为命名的ptype

For example:

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

Clear()

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

例如:

    rm.Clear()

AddLink添加了两个角色之间的继承链接。 角色: 名称1 和 角色: 名称2 域是角色的前缀(可以用于其他目的)。

例如:

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

DeleteLink 删除两个角色之间的继承链接。 角色: 名称1 和 角色: 名称2 域是角色的前缀(可以用于其他目的)。

例如:

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

HasLink 决定两种角色之间是否存在联系。 role: name1 继承自 role: 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)