Langkau ke kandungan utama

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.

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

GetUsersForRoleInDomain()

Fungsi GetUsersForRoleInDomain() mengambil pengguna yang mempunyai peranan dalam suatu domain.

Contohnya:

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

GetRolesForUserInDomain()

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

Contohnya:

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

GetPermissionsForUserInDomain()

Fungsi GetPermissionsForUserInDomain() mengambil kebenaran untuk pengguna atau peranan dalam suatu domain.

Contohnya:

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:

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

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

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:

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:

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:

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

GetAllDomains()

GetAllDomains akan mendapatkan semua domain.

Contohnya:

res, _ := e.GetAllDomains()
nota

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:

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

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

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

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