メインコンテンツにスキップ

RoleManager API

RoleManager

RoleManagerは、ロールを管理するための操作を定義するインターフェースを提供します。 RoleManagerにマッチング機能を追加することで、ロール名やドメインにワイルドカードを使用できます。

AddNamedMatchingFunc()

AddNamedMatchingFunc関数は、PtypeによるMatchingFuncを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関数は、PtypeによるMatchingFuncを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は、2つのロール間の継承リンクを追加します。 ロール: name1 と ロール: name2。 ドメインはロールのプレフィックスであり(他の目的にも使用できます)。

例:

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

DeleteLinkは、2つのロール間の継承リンクを削除します。 ロール: name1 と ロール: name2。 ドメインはロールのプレフィックスであり(他の目的にも使用できます)。

例:

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

HasLinkは、2つのロール間にリンクが存在するかどうかを判断します。 ロール: 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)