Bỏ qua đến nội dung chính

RoleManager API

RoleManager

RoleManager cung cấp một giao diện để định nghĩa các thao tác quản lý vai trò. Việc bổ sung một hàm so khớp vào RoleManager cho phép sử dụng ký tự đại diện trong tên vai trò và miền.

AddNamedMatchingFunc()

Hàm AddNamedMatchingFunc thêm một MatchingFunc theo Ptype vào RoleManager. MatchingFunc sẽ được sử dụng khi thực hiện so khớp vai trò.

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

Ví dụ:

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

AddNamedDomainMatchingFunc()

Hàm AddNamedDomainMatchingFunc thêm một MatchingFunc theo Ptype vào RoleManager. DomainMatchingFunc tương tự như MatchingFunc đã liệt kê ở trên.

Ví dụ:

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

GetRoleManager()

Hàm GetRoleManager lấy trình quản lý vai trò hiện tại cho g.

Ví dụ:

    rm := e.GetRoleManager()

GetNamedRoleManager()

Hàm GetNamedRoleManager lấy quản lý vai trò theo tên Ptype.

Ví dụ:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

Hàm SetRoleManager thiết lập quản lý vai trò hiện tại cho g.

Ví dụ:

    e.SetRoleManager(rm)

SetNamedRoleManager()

Hàm SetNamedRoleManager thiết lập quản lý vai trò theo tên Ptype.

Ví dụ:

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

Clear()

Hàm Clear xóa tất cả dữ liệu đã lưu và đặt lại trình quản lý vai trò về trạng thái ban đầu.

Ví dụ:

    rm.Clear()

AddLink thêm liên kết kế thừa giữa hai vai trò. vai trò: name1 và vai trò: name2. Domain là tiền tố cho các vai trò (có thể được sử dụng cho các mục đích khác).

Ví dụ:

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

DeleteLink xóa liên kết kế thừa giữa hai vai trò. vai trò: name1 và vai trò: name2. Domain là tiền tố cho các vai trò (có thể được sử dụng cho các mục đích khác).

Ví dụ:

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

HasLink xác định xem có liên kết nào giữa hai vai trò hay không. vai trò: name1 kế thừa vai trò: name2. Domain là tiền tố cho các vai trò (có thể được sử dụng cho các mục đích khác).

Ví dụ:

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

GetRoles()

GetRoles lấy các vai trò mà một người dùng kế thừa. Domain là tiền tố cho các vai trò (có thể được sử dụng cho các mục đích khác).

Ví dụ:

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

GetUsers()

GetUsers lấy danh sách người dùng kế thừa một vai trò. Domain là tiền tố cho người dùng (có thể được sử dụng cho các mục đích khác).

Ví dụ:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles in tất cả các vai trò ra nhật ký.

Ví dụ:

    rm.PrintRoles()

SetLogger()

SetLogger thiết lập bộ ghi nhật ký cho quản lý vai trò.

Ví dụ:

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

GetDomains()

GetDomains lấy các miền mà một người dùng có

Ví dụ:

    result, err := rm.GetDomains(name)