ข้ามไปยังเนื้อหาหลัก

RBAC with Domains API

API ที่ใช้งานง่ายกว่าสำหรับ RBAC ที่มีโดเมน API นี้เป็นส่วนย่อยของ Management API ผู้ใช้ RBAC สามารถใช้ API นี้เพื่อทำให้โค้ดของพวกเขาง่ายขึ้น

อ้างอิง

ตัวแปร global e แทน instance ของ Enforcer

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

GetUsersForRoleInDomain()

ฟังก์ชัน GetUsersForRoleInDomain() ใช้เพื่อดึงผู้ใช้ที่มีบทบาทภายในโดเมน

ตัวอย่าง:

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

GetRolesForUserInDomain()

ฟังก์ชัน GetRolesForUserInDomain() ใช้เพื่อดึงบทบาทที่ผู้ใช้มีภายในโดเมน

ตัวอย่าง:

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

GetPermissionsForUserInDomain()

ฟังก์ชัน GetPermissionsForUserInDomain() ใช้เพื่อดึงสิทธิ์การใช้งานสำหรับผู้ใช้หรือบทบาทภายในโดเมน

ตัวอย่าง:

res := e.GetPermissionsForUserInDomain("alice", "domain1")

AddRoleForUserInDomain()

ฟังก์ชัน AddRoleForUserInDomain() ใช้เพื่อเพิ่มบทบาทให้กับผู้ใช้ภายในโดเมน มันจะคืนค่า false ถ้าผู้ใช้มีบทบาทนั้นอยู่แล้ว (ไม่มีการเปลี่ยนแปลง)

ตัวอย่าง:

ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")

DeleteRoleForUserInDomain()

ฟังก์ชัน DeleteRoleForUserInDomain() ใช้เพื่อลบบทบาทของผู้ใช้ภายในโดเมน มันจะคืนค่า false ถ้าผู้ใช้ไม่มีบทบาทนั้น (ไม่มีการเปลี่ยนแปลง)

ตัวอย่าง:

ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")

DeleteRolesForUserInDomain()

ฟังก์ชัน DeleteRolesForUserInDomain() ใช้เพื่อลบบทบาททั้งหมดของผู้ใช้ภายในโดเมน มันจะคืนค่า false ถ้าผู้ใช้ไม่มีบทบาทใดๆ (ไม่มีการเปลี่ยนแปลง)

ตัวอย่าง:

ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")

GetAllUsersByDomain()

ฟังก์ชัน GetAllUsersByDomain() ใช้เพื่อดึงผู้ใช้ทั้งหมดที่เกี่ยวข้องกับโดเมนที่กำหนด มันจะคืนค่าอาร์เรย์สตริงที่ว่างเปล่าถ้าไม่มีโดเมนที่กำหนดในโมเดล

ตัวอย่าง:

res := e.GetAllUsersByDomain("domain1")

DeleteAllUsersByDomain()

ฟังก์ชัน DeleteAllUsersByDomain() ใช้เพื่อลบผู้ใช้ทั้งหมดที่เกี่ยวข้องกับโดเมนที่กำหนด มันจะคืนค่า false ถ้าไม่มีโดเมนที่กำหนดในโมเดล

ตัวอย่าง:

ok, err := e.DeleteAllUsersByDomain("domain1")

DeleteDomains()

DeleteDomains จะลบผู้ใช้และบทบาทที่เกี่ยวข้องทั้งหมด มันจะลบโดเมนทั้งหมดถ้าไม่มีพารามิเตอร์ที่ให้มา

ตัวอย่าง:

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

GetAllDomains()

GetAllDomains จะดึงโดเมนทั้งหมด

ตัวอย่าง:

res, _ := e.GetAllDomains()
หมายเหตุ

ถ้าคุณกำลังจัดการโดเมนเช่น name::domain อาจนำไปสู่พฤติกรรมที่ไม่คาดคิด ใน Casbin, :: เป็นคำหลักที่สงวนไว้ เช่นเดียวกับ for, if ในภาษาโปรแกรม คุณไม่ควรใส่ :: ในโดเมน

GetAllRolesByDomain()

GetAllRolesByDomain จะดึงบทบาททั้งหมดที่เกี่ยวข้องกับโดเมน

ตัวอย่าง:

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

ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
หมายเหตุ

จะคืนค่าเฉพาะผู้ใช้เท่านั้น บทบาท (อาร์กิวเมนต์ที่ 2 ใน "g") จะถูกแยกออก