RoleManager API
ロールマネージャー
RoleManager は、ロールを管理するための操作を定義するインターフェイスを提供します。 rolemanagerに一致する関数を追加すると、ロール名とドメインでワイルドカードを使用できます。
AddNamedMatchingFunc()
AddNamedMatchingFunc ptype RoleManager によって MatchingFunc を追加します。 MatchingFunc は、ロールのマッチングを操作するときに動作します。
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
例:
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
AddNamedDomainMatchingFunc ptype で RoleManager にMatchingFunc を追加します。 DomainMatchingFunc
は上記の MatchingFunc
に似ています。
例:
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
GetRoleManager は、 g
の現在のロールマネージャを取得します。
例:
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
Clear()
すべての保存されたデータをクリアし、ロールマネージャを初期状態にリセットします。
例:
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
AddLinkは2つのロール間で継承リンクを追加します。 role: name1 と role: name2 ドメインは、ロールのプレフィックスです(他の目的で使用できます)。
例:
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
DeleteLinkは2つのロール間の継承リンクを削除します。 role: name1 と role: name2 ドメインは、ロールのプレフィックスです(他の目的で使用できます)。
例:
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
HasLinkは、2つのロール間にリンクが存在するかどうかを決定します。 role: name1 は role を継承します: name2 ドメインは、ロールのプレフィックスです(他の目的で使用できます)。
例:
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("u1", "g1", "domain1")
GetRoles()
GetRoles は、ユーザーが継承するロールを取得します。 ドメインは、ロールのプレフィックスです(他の目的で使用できます)。
例:
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
GetUsers は、ロールを継承するユーザーを取得します。 ドメインはユーザーのプレフィックスです(他の目的で使用できます)。
例:
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRolesはすべてのロールをログに出力します。
例:
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger はロールマネージャのロガーを設定します。
例:
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains はユーザーが持つドメインを取得します。
例:
result, err := rm.GetDomains(name)