RBAC with Domains API
ドメインを使用したRBACのためのよりユーザーフレンドリーなAPI。 このAPIは、Management APIの一部です。 RBACのユーザーはこのAPIを使用してコードを簡略化できます。
参照
グローバル変数 e
はEnforcerインスタンスを表します。
- Go
- Node.js
- PHP
- Python
- .NET
- Rust
- Java
e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
const e = await newEnforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv')
$e = new Enforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv');
e = casbin.Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
var e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
let mut e = Enforcer::new("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv").await?;
Enforcer e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
GetUsersForRoleInDomain()
GetUsersForRoleInDomain()
関数は、ドメイン内で役割を持つユーザーを取得します。
例:
- Go
- Node.js
- Python
res := e.GetUsersForRoleInDomain("admin", "domain1")
const res = e.getUsersForRoleInDomain("admin", "domain1")
res = e.get_users_for_role_in_domain("admin", "domain1")
GetRolesForUserInDomain()
GetRolesForUserInDomain()
関数は、ドメイン内でユーザーが持つ役割を取得します。
例:
- Go
- Node.js
- Python
- Java
res := e.GetRolesForUserInDomain("admin", "domain1")
const res = e.getRolesForUserInDomain("alice", "domain1")
res = e.get_roles_for_user_in_domain("alice", "domain1")
List<String> res = e.getRolesForUserInDomain("admin", "domain1");
GetPermissionsForUserInDomain()
GetPermissionsForUserInDomain()
関数は、ドメイン内のユーザーまたは役割の権限を取得します。
例:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
AddRoleForUserInDomain()
関数は、ドメイン内のユーザーに役割を追加します。 ユーザーがすでにその役割を持っている場合は false
を返します(変更なし)。
例:
- Go
- Python
- Java
ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")
ok = e.add_role_for_user_in_domain("alice", "admin", "domain1")
boolean ok = e.addRoleForUserInDomain("alice", "admin", "domain1");
DeleteRoleForUserInDomain()
DeleteRoleForUserInDomain()
関数は、ドメイン内のユーザーから役割を削除します。 ユーザーがその役割を持っていない場合は false
を返します(変更なし)。
例:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
DeleteRolesForUserInDomain()
関数は、ドメイン内のユーザーからすべての役割を削除します。 ユーザーが役割を持っていない場合は false
を返します(変更なし)。
例:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
GetAllUsersByDomain()
関数は、指定されたドメインに関連付けられたすべてのユーザーを取得します。 モデルにドメインが定義されていない場合は、空の文字列配列を返します。
例:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
DeleteAllUsersByDomain()
関数は、指定されたドメインに関連付けられたすべてのユーザーを削除します。 モデルにドメインが定義されていない場合は false
を返します。
例:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomainsは、関連するすべてのユーザーと役割を削除します。 パラメータが提供されていない場合、すべてのドメインが削除されます。
例:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomainsはすべてのドメインを取得します。
例:
- Go
res, _ := e.GetAllDomains()
name::domain
のようなドメインを扱っている場合、予期しない動作を引き起こす可能性があります。 Casbinでは、::
は予約されたキーワードであり、プログラミング言語のfor
やif
のようなもので、ドメインに::
を入れてはなりません。
GetAllRolesByDomain()
GetAllRolesByDomainは、ドメインに関連付けられたすべてのロールを取得します。
例:
- Go
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
を返します。
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
ユーザーのみが返され、ロール("g"の2番目の引数)は除外されます。