RBAC with Domains API
Một API thân thiện hơn với người dùng cho RBAC với các miền. API này là một tập hợp con của API Quản lý. Người dùng RBAC có thể sử dụng API này để đơn giản hóa mã của họ.
Tài liệu tham khảo
Biến toàn cục e
đại diện cho thể hiện 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()
Hàm GetUsersForRoleInDomain()
lấy danh sách người dùng có một vai trò trong một lĩnh vực.
Ví dụ:
- 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()
Hàm GetRolesForUserInDomain()
lấy danh sách vai trò mà một người dùng có trong một lĩnh vực.
Ví dụ:
- 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()
Hàm GetPermissionsForUserInDomain()
lấy danh sách quyền cho một người dùng hoặc vai trò trong một lĩnh vực.
Ví dụ:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
Hàm AddRoleForUserInDomain()
thêm một vai trò cho một người dùng trong một lĩnh vực. Nó trả về false
nếu người dùng đã có vai trò đó (không có thay đổi nào được thực hiện).
Ví dụ:
- 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()
Hàm DeleteRoleForUserInDomain()
loại bỏ một vai trò cho người dùng trong một miền. Nó trả về false
nếu người dùng không có vai trò đó (không có thay đổi nào được thực hiện).
Ví dụ:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
Hàm DeleteRolesForUserInDomain()
loại bỏ tất cả các vai trò cho người dùng trong một miền. Nó trả về false
nếu người dùng không có bất kỳ vai trò nào (không có thay đổi nào được thực hiện).
Ví dụ:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
Hàm LấyTấtCảNgườiDùngTheoTênMiền()
lấy tất cả người dùng liên kết với tên miền đã cho. Nó trả về một mảng chuỗi rỗng nếu không có tên miền nào được định nghĩa trong mô hình.
Ví dụ:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
Hàm XóaTấtCảNgườiDùngTheoTênMiền()
xóa tất cả người dùng liên kết với tên miền đã cho. Nó trả về false
nếu không có tên miền nào được định nghĩa trong mô hình.
Ví dụ:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
XóaTấtCảTênMiền sẽ xóa tất cả người dùng và vai trò liên kết. Nó sẽ xóa tất cả các miền nếu tham số không được cung cấp.
Ví dụ:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains sẽ lấy tất cả các miền.
Ví dụ:
- Go
res, _ := e.GetAllDomains()
Nếu bạn đang xử lý một miền như name::domain
, nó có thể dẫn đến hành vi không mong muốn. Trong Casbin, ::
là một từ khóa dành riêng, giống như for
, if
trong một ngôn ngữ lập trình, chúng ta không bao giờ nên đặt ::
vào trong một miền.
GetAllRolesByDomain()
GetAllRolesByDomain sẽ lấy tất cả các vai trò liên quan đến miền.
Ví dụ:
- Go
res := e.GetAllRolesByDomain("domain1")
Phương pháp này không áp dụng cho các miền có mối quan hệ kế thừa, còn được gọi là vai trò ngầm định.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain trả về người dùng ngầm định dựa trên tài nguyên và miền.
Ví dụ:
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") sẽ trả về [["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Chỉ người dùng sẽ được trả về, vai trò (đối số thứ 2 trong "g") sẽ bị loại trừ.