RBAC with Domains API
도메인을 사용한 RBAC에 대한 더 사용자 친화적인 API. 이 API는 관리 API의 하위 집합입니다. RBAC 사용자는 이 API를 사용하여 코드를 단순화할 수 있습니다.
참조
전역 변수 e
는 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()
GetUsersForRoleInDomain()
함수는 도메인 내에서 역할을 가진 사용자를 검색합니다.
예를 들어:
- 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()
GetRolesForUserInDomain()
함수는 사용자가 도메인 내에서 가진 역할을 검색합니다.
예를 들어:
- 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()
GetPermissionsForUserInDomain()
함수는 도메인 내에서 사용자 또는 역할에 대한 권한을 검색합니다.
예를 들어:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
AddRoleForUserInDomain()
함수는 도메인 내의 사용자에게 역할을 추가합니다. 사용자가 이미 역할을 가지고 있으면 false
를 반환합니다(변경 사항 없음).
예를 들어:
- 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()
DeleteRoleForUserInDomain()
함수는 도메인 내의 사용자에게서 역할을 제거합니다. 사용자가 역할을 가지고 있지 않으면 false
를 반환합니다(변경 사항 없음).
예를 들어:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
DeleteRolesForUserInDomain()
함수는 도메인 내의 사용자에게서 모든 역할을 제거합니다. 사용자가 역할을 가지고 있지 않으면 false
를 반환합니다(변경 사항 없음).
예를 들어:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
GetAllUsersByDomain()
함수는 주어진 도메인과 연결된 모든 사용자를 검색합니다. 모델에 도메인이 정의되어 있지 않으면 빈 문자열 배열을 반환합니다.
예를 들어:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
DeleteAllUsersByDomain()
함수는 주어진 도메인과 연결된 모든 사용자를 삭제합니다. 모델에 도메인이 정의되어 있지 않으면 false
를 반환합니다.
예를 들어:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains는 모든 연관된 사용자와 역할을 삭제합니다. 매개변수가 제공되지 않으면 모든 도메인을 삭제합니다.
예를 들어:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains는 모든 도메인을 가져옵니다.
예를 들어:
- Go
res, _ := e.GetAllDomains()
name::domain
과 같은 도메인을 처리하고 있다면, 예상치 못한 동작을 초래할 수 있습니다. Casbin에서, ::
는 프로그래밍 언어의 for
, if
와 같은 예약어이므로, 도메인에 ::
를 넣어서는 안됩니다.
GetAllRolesByDomain()
GetAllRolesByDomain은 도메인과 연관된 모든 역할을 가져옵니다.
예를 들어:
- Go
res := e.GetAllRolesByDomain("domain1")
이 메소드는 상속 관계를 가진 도메인, 즉 암시적 역할로 알려진 도메인에는 적용되지 않습니다.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain은 리소스와 도메인을 기반으로 암시적 사용자를 반환합니다.
예를 들어:
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
을 반환할 것입니다.
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
사용자만 반환되며, 역할("g"의 2번째 인수)은 제외됩니다.