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

RBAC with Domains API

ドメインを使用したRBACのためのよりユーザーフレンドリーなAPI。 このAPIは、Management APIの一部です。 RBACのユーザーはこのAPIを使用してコードを簡略化できます。

参照

グローバル変数 e はEnforcerインスタンスを表します。

e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")

GetUsersForRoleInDomain()

GetUsersForRoleInDomain() 関数は、ドメイン内で役割を持つユーザーを取得します。

例:

res := e.GetUsersForRoleInDomain("admin", "domain1")

GetRolesForUserInDomain()

GetRolesForUserInDomain() 関数は、ドメイン内でユーザーが持つ役割を取得します。

例:

res := e.GetRolesForUserInDomain("admin", "domain1")

GetPermissionsForUserInDomain()

GetPermissionsForUserInDomain() 関数は、ドメイン内のユーザーまたは役割の権限を取得します。

例:

res := e.GetPermissionsForUserInDomain("alice", "domain1")

AddRoleForUserInDomain()

AddRoleForUserInDomain() 関数は、ドメイン内のユーザーに役割を追加します。 ユーザーがすでにその役割を持っている場合は false を返します(変更なし)。

例:

ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")

DeleteRoleForUserInDomain()

DeleteRoleForUserInDomain() 関数は、ドメイン内のユーザーから役割を削除します。 ユーザーがその役割を持っていない場合は false を返します(変更なし)。

例:

ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")

DeleteRolesForUserInDomain()

DeleteRolesForUserInDomain() 関数は、ドメイン内のユーザーからすべての役割を削除します。 ユーザーが役割を持っていない場合は false を返します(変更なし)。

例:

ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")

GetAllUsersByDomain()

GetAllUsersByDomain() 関数は、指定されたドメインに関連付けられたすべてのユーザーを取得します。 モデルにドメインが定義されていない場合は、空の文字列配列を返します。

例:

res := e.GetAllUsersByDomain("domain1")

DeleteAllUsersByDomain()

DeleteAllUsersByDomain() 関数は、指定されたドメインに関連付けられたすべてのユーザーを削除します。 モデルにドメインが定義されていない場合は false を返します。

例:

ok, err := e.DeleteAllUsersByDomain("domain1")

DeleteDomains()

DeleteDomainsは、関連するすべてのユーザーと役割を削除します。 パラメータが提供されていない場合、すべてのドメインが削除されます。

例:

ok, err := e.DeleteDomains("domain1", "domain2")

GetAllDomains()

GetAllDomainsはすべてのドメインを取得します。

例:

res, _ := e.GetAllDomains()
メモ

name::domainのようなドメインを扱っている場合、予期しない動作を引き起こす可能性があります。 Casbinでは、::は予約されたキーワードであり、プログラミング言語のforifのようなもので、ドメインに::を入れてはなりません。

GetAllRolesByDomain()

GetAllRolesByDomainは、ドメインに関連付けられたすべてのロールを取得します。

例:

res := e.GetAllRolesByDomain("domain1")
メモ

このメソッドは、継承関係を持つドメイン、別名暗黙のロールには適用されません。

GetImplicitUsersForResourceByDomain()

GetImplicitUsersForResourceByDomainは、リソースとドメインに基づいて暗黙のユーザーを返します。

例:

p, admin, domain1, data1, read
p, admin, domain1, data1, write
p, admin, domain2, data2, read
p, admin, domain2, data2, write
g, alice, admin, domain1
g, bob, admin, domain2

GetImplicitUsersForResourceByDomain("data1", "domain1")は[["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nilを返します。

ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
メモ

ユーザーのみが返され、ロール("g"の2番目の引数)は除外されます。