RBAC with Domains API
API yang lebih ramah pengguna untuk RBAC dengan domain. API ini adalah subset dari API Manajemen. Pengguna RBAC dapat menggunakan API ini untuk menyederhanakan kode mereka.
Referensi
Variabel global e
mewakili instance 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 memiliki peran 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 peran yang dimiliki 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 izin untuk pengguna atau peran dalam suatu domain.
Contohnya:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
Fungsi AddRoleForUserInDomain()
menambahkan peran untuk pengguna dalam suatu domain. Ini mengembalikan false
jika pengguna sudah memiliki peran (tidak ada perubahan yang dilakukan).
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()
menghapus peran untuk pengguna dalam suatu domain. Ini mengembalikan false
jika pengguna tidak memiliki peran (tidak ada perubahan yang dilakukan).
Contohnya:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
Fungsi DeleteRolesForUserInDomain()
menghapus semua peran untuk pengguna dalam suatu domain. Ini mengembalikan false
jika pengguna tidak memiliki peran apapun (tidak ada perubahan yang dilakukan).
Contohnya:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
Fungsi GetAllUsersByDomain()
mengambil semua pengguna yang terkait dengan domain yang diberikan. Fungsi ini mengembalikan array string kosong jika tidak ada domain yang didefinisikan dalam model.
Contohnya:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
Fungsi DeleteAllUsersByDomain()
menghapus semua pengguna yang terkait dengan domain yang diberikan. Fungsi ini mengembalikan false
jika tidak ada domain yang didefinisikan dalam model.
Contohnya:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains
akan menghapus semua pengguna dan peran yang terkait.
Ini akan menghapus 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 menangani domain seperti name::domain
, hal ini dapat menyebabkan perilaku yang tidak terduga. Di Casbin, ::
adalah kata kunci yang dicadangkan, seperti for
, if
dalam bahasa pemrograman, kita tidak boleh menempatkan ::
dalam domain.
GetAllRolesByDomain()
GetAllRolesByDomain akan mendapatkan semua peran yang terkait dengan domain.
Contohnya:
- Go
res := e.GetAllRolesByDomain("domain1")
Metode ini tidak berlaku untuk domain yang memiliki hubungan pewarisan, juga dikenal sebagai peran implisit.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain mengembalikan pengguna implisit berdasarkan sumber daya 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 yang akan dikembalikan, peran (argumen ke-2 dalam "g") akan dikecualikan.