RoleManager API
RoleManager
RoleManager ให้ interface สำหรับการกำหนดการดำเนินการในการจัดการ roles การเพิ่มฟังก์ชัน matching ให้กับ RoleManager ทำให้สามารถใช้ wildcard ในชื่อ roles และ domains
AddNamedMatchingFunc()
ฟังก์ชัน AddNamedMatchingFunc เพิ่ม MatchingFunc โดย Ptype ให้กับ RoleManager MatchingFunc จะถูกใช้เมื่อทำการจับคู่ roles
- Go
 - Node.js
 
    e.AddNamedMatchingFunc("g", "", util.KeyMatch)
    _, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
    _, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
    await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
    await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
    await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
ตัวอย่าง:
- Go
 - Node.js
 
    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
    e.AddNamedMatchingFunc("g", "", util.MatchKey)
    const e = await newEnforcer('path/to/model', 'path/to/policy');
    await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
ฟังก์ชัน AddNamedDomainMatchingFunc เพิ่ม MatchingFunc โดย Ptype ให้กับ RoleManager DomainMatchingFunc คล้ายกับ MatchingFunc ที่ได้กล่าวไว้ข้างต้น
ตัวอย่าง:
- Go
 - Node.js
 
    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
    e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
    const e = await newEnforcer('path/to/model', 'path/to/policy');
    await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
ฟังก์ชัน GetRoleManager ดึง role manager ปัจจุบันสำหรับ g
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm := e.GetRoleManager()
    const rm = await e.getRoleManager();
    rm = e.get_role_manager()
GetNamedRoleManager()
ฟังก์ชัน GetNamedRoleManager ดึง role manager โดยชื่อ Ptype
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm := e.GetNamedRoleManager("g2")
    const rm = await e.getNamedRoleManager("g2");
    rm = e.get_named_role_manager("g2")
SetRoleManager()
ฟังก์ชัน SetRoleManager ตั้งค่า role manager ปัจจุบันสำหรับ g
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    e.SetRoleManager(rm)
    e.setRoleManager(rm);
    rm = e.set_role_manager(rm)
SetNamedRoleManager()
ฟังก์ชัน SetNamedRoleManager ตั้งค่า role manager โดยชื่อ Ptype
ตัวอย่าง:
- Go
 - Python
 
    rm := e.SetNamedRoleManager("g2", rm)
    rm = e.set_role_manager("g2", rm)
Clear()
ฟังก์ชัน Clear ล้างข้อมูลที่เก็บไว้ทั้งหมดและรีเซ็ต role manager กลับไปสู่สถานะเริ่มต้น
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.Clear()
    await rm.clear();
    rm.clear()
AddLink()
AddLink เพิ่มลิงก์การสืบทอดระหว่างสอง roles role: name1 และ role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.AddLink("u1", "g1", "domain1")
    await rm.addLink('u1', 'g1', 'domain1');
    rm.add_link("u1", "g1", "domain1")
DeleteLink()
DeleteLink ลบลิงก์การสืบทอดระหว่างสอง roles role: name1 และ role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.DeleteLink("u1", "g1", "domain1")
    await rm.deleteLink('u1', 'g1', 'domain1');
    rm.delete_link("u1", "g1", "domain1")
HasLink()
HasLink ตรวจสอบว่ามีลิงก์ระหว่างสอง roles หรือไม่ role: name1 สืบทอด role: name2 Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.HasLink("u1", "g1", "domain1")
    await rm.hasLink('u1', 'g1', 'domain1');
    rm.has_link("u1", "g1", "domain1")
GetRoles()
GetRoles ดึง roles ที่ผู้ใช้สืบทอด Domain เป็นคำนำหน้าของ roles (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.GetRoles("u1", "domain1")
    await rm.getRoles('u1', 'domain1');
    rm.get_roles("u1", "domain")
GetUsers()
GetUsers ดึงผู้ใช้ที่สืบทอด role Domain เป็นคำนำหน้าของผู้ใช้ (สามารถใช้สำหรับวัตถุประสงค์อื่นๆ)
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.GetUsers("g1")
    await rm.getUsers('g1');
    rm.get_users("g1")
PrintRoles()
PrintRoles พิมพ์ roles ทั้งหมดไปยัง log
ตัวอย่าง:
- Go
 - Node.js
 - Python
 
    rm.PrintRoles()
    await rm.printRoles();
    rm.print_roles()
SetLogger()
SetLogger ตั้งค่า logger ของ role manager
ตัวอย่าง:
- Go
 
    logger := log.DefaultLogger{}
    logger.EnableLog(true)
    rm.SetLogger(&logger)
    _ = rm.PrintRoles()
GetDomains()
GetDomains ดึง domains ที่ผู้ใช้มี
ตัวอย่าง:
- Go
 
    result, err := rm.GetDomains(name)