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)