RBAC with Domains API
API yang lebih mesra pengguna untuk RBAC dengan domain. API ini adalah subset dari API Pengurusan. Pengguna RBAC boleh menggunakan API ini untuk memudahkan kod mereka.
Rujukan
Pemboleh ubah global e
mewakili contoh 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()
Fungsi GetUsersForRoleInDomain()
mengambil pengguna yang mempunyai peranan dalam suatu domain.
Contohnya:
- 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()
Fungsi GetRolesForUserInDomain()
mengambil peranan yang dimiliki oleh pengguna dalam suatu domain.
Contohnya:
- 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()
Fungsi GetPermissionsForUserInDomain()
mengambil kebenaran untuk pengguna atau peranan dalam suatu domain.
Contohnya:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
Fungsi AddRoleForUserInDomain()
menambahkan peranan untuk pengguna dalam suatu domain. Ia mengembalikan false
jika pengguna sudah mempunyai peranan (tiada perubahan dibuat).
Contohnya:
- 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()
Fungsi DeleteRoleForUserInDomain()
mengeluarkan peranan untuk pengguna dalam domain. Ia mengembalikan false
jika pengguna tidak mempunyai peranan (tiada perubahan dibuat).
Contohnya:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
Fungsi DeleteRolesForUserInDomain()
mengeluarkan semua peranan untuk pengguna dalam domain. Ia mengembalikan false
jika pengguna tidak mempunyai sebarang peranan (tiada perubahan dibuat).
Contohnya:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
Fungsi DapatkanSemuaPenggunaMengikutDomain()
mengambil semua pengguna yang berkaitan dengan domain yang diberikan. Ia mengembalikan tatasusunan rentetan kosong jika tiada domain ditakrifkan dalam model.
Contohnya:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
Fungsi PadamSemuaPenggunaMengikutDomain()
memadamkan semua pengguna yang berkaitan dengan domain yang diberikan. Ia mengembalikan false
jika tiada domain ditakrifkan dalam model.
Contohnya:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
PadamDomain akan memadamkan semua pengguna dan peranan yang berkaitan. Ia akan memadamkan semua domain jika parameter tidak diberikan.
Contohnya:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains akan mendapatkan semua domain.
Contohnya:
- Go
res, _ := e.GetAllDomains()
Jika anda mengendalikan domain seperti name::domain
, ia mungkin menyebabkan tingkah laku yang tidak dijangka. Dalam Casbin, ::
adalah kata kunci yang dilindungi, sama seperti for
, if
dalam bahasa pengaturcaraan, kita tidak seharusnya meletakkan ::
dalam domain.
GetAllRolesByDomain()
GetAllRolesByDomain akan mendapatkan semua peranan yang berkaitan dengan domain.
Contohnya:
- Go
res := e.GetAllRolesByDomain("domain1")
Kaedah ini tidak terpakai kepada domain yang mempunyai hubungan warisan, juga dikenali sebagai peranan tersirat.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain mengembalikan pengguna tersirat berdasarkan sumber dan domain.
Contohnya:
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") akan mengembalikan [["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Hanya pengguna akan dikembalikan, peranan (argumen ke-2 dalam "g") akan dikecualikan.