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

RoleManager API

RoleManager

RoleManager ให้ interface สำหรับการกำหนดการดำเนินการในการจัดการ roles การเพิ่มฟังก์ชัน matching ให้กับ RoleManager ทำให้สามารถใช้ wildcard ในชื่อ roles และ domains

AddNamedMatchingFunc()

ฟังก์ชัน AddNamedMatchingFunc เพิ่ม MatchingFunc โดย Ptype ให้กับ RoleManager MatchingFunc จะถูกใช้เมื่อทำการจับคู่ roles

    e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil

ตัวอย่าง:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)

AddNamedDomainMatchingFunc()

ฟังก์ชัน AddNamedDomainMatchingFunc เพิ่ม MatchingFunc โดย Ptype ให้กับ RoleManager DomainMatchingFunc คล้ายกับ MatchingFunc ที่ได้กล่าวไว้ข้างต้น

ตัวอย่าง:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)

GetRoleManager()

ฟังก์ชัน GetRoleManager ดึง role manager ปัจจุบันสำหรับ g

ตัวอย่าง:

    rm := e.GetRoleManager()

GetNamedRoleManager()

ฟังก์ชัน GetNamedRoleManager ดึง role manager โดยชื่อ Ptype

ตัวอย่าง:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

ฟังก์ชัน SetRoleManager ตั้งค่า role manager ปัจจุบันสำหรับ g

ตัวอย่าง:

    e.SetRoleManager(rm)

SetNamedRoleManager()

ฟังก์ชัน SetNamedRoleManager ตั้งค่า role manager โดยชื่อ Ptype

ตัวอย่าง:

    rm := e.SetNamedRoleManager("g2", rm)

Clear()

ฟังก์ชัน Clear ล้างข้อมูลที่เก็บไว้ทั้งหมดและรีเซ็ต role manager กลับไปสู่สถานะเริ่มต้น

ตัวอย่าง:

    rm.Clear()

AddLink เพิ่มลิงก์การสืบทอดระหว่างสอง roles role: name1 และ role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)

ตัวอย่าง:

    rm.AddLink("u1", "g1", "domain1")

DeleteLink ลบลิงก์การสืบทอดระหว่างสอง roles role: name1 และ role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)

ตัวอย่าง:

    rm.DeleteLink("u1", "g1", "domain1")

HasLink ตรวจสอบว่ามีลิงก์ระหว่างสอง roles หรือไม่ role: name1 สืบทอด role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)

ตัวอย่าง:

    rm.HasLink("u1", "g1", "domain1")

GetRoles()

GetRoles ดึง roles ที่ผู้ใช้สืบทอด Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)

ตัวอย่าง:

    rm.GetRoles("u1", "domain1")

GetUsers()

GetUsers ดึงผู้ใช้ที่สืบทอด role Domain เป็นคำนำหน้าของผู้ใช้ (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)

ตัวอย่าง:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles พิมพ์ roles ทั้งหมดไปยัง log

ตัวอย่าง:

    rm.PrintRoles()

SetLogger()

SetLogger ตั้งค่า logger ของ role manager

ตัวอย่าง:

    logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()

GetDomains()

GetDomains ดึง domains ที่ผู้ใช้มี

ตัวอย่าง:

    result, err := rm.GetDomains(name)