RBAC with Domains API
API ที่ใช้งานง่ายกว่าสำหรับ RBAC ที่มีโดเมน API นี้เป็นส่วนย่อยของ Management API ผู้ใช้ RBAC สามารถใช้ API นี้เพื่อทำให้โค้ดของพวกเขาง่ายขึ้น
อ้างอิง
ตัวแปร global e
แทน 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()
ฟังก์ชัน 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")
วิธีนี้ไม่ใช้กับโดเมนที่มีความสัมพันธ์แบบสืบทอด หรือที่เรียกว่าบทบาทแบบ implicit
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain คืนค่าผู้ใช้แบบ implicit ตามทรัพยากรและโดเมน
ตัวอย่าง:
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")
จะคืนค่าเฉพาะผู้ใช้เท่านั้น บทบาท (อาร์กิวเมนต์ที่ 2 ใน "g") จะถูกแยกออก