Lewati ke konten utama

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.

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

GetUsersForRoleInDomain()

Fungsi GetUsersForRoleInDomain() mengambil pengguna yang memiliki peran dalam suatu domain.

Contohnya:

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

GetRolesForUserInDomain()

Fungsi GetRolesForUserInDomain() mengambil peran yang dimiliki pengguna dalam suatu domain.

Contohnya:

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

GetPermissionsForUserInDomain()

Fungsi GetPermissionsForUserInDomain() mengambil izin untuk pengguna atau peran dalam suatu domain.

Contohnya:

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:

ok, err := 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:

ok, err := 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:

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:

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:

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:

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

GetAllDomains()

GetAllDomains akan mendapatkan semua domain.

Contohnya:

res, _ := e.GetAllDomains()
catatan

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:

res := e.GetAllRolesByDomain("domain1")
catatan

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

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

Hanya pengguna yang akan dikembalikan, peran (argumen ke-2 dalam "g") akan dikecualikan.