주요 콘텐츠로 건너뛰기

RBAC with Domains API

도메인을 사용한 RBAC에 대한 더 사용자 친화적인 API. 이 API는 관리 API의 하위 집합입니다. RBAC 사용자는 이 API를 사용하여 코드를 단순화할 수 있습니다.

참조

전역 변수 e는 Enforcer 인스턴스를 나타냅니다.

e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")

GetUsersForRoleInDomain()

GetUsersForRoleInDomain() 함수는 도메인 내에서 역할을 가진 사용자를 검색합니다.

예를 들어:

res := e.GetUsersForRoleInDomain("admin", "domain1")

GetRolesForUserInDomain()

GetRolesForUserInDomain() 함수는 사용자가 도메인 내에서 가진 역할을 검색합니다.

예를 들어:

res := e.GetRolesForUserInDomain("admin", "domain1")

GetPermissionsForUserInDomain()

GetPermissionsForUserInDomain() 함수는 도메인 내에서 사용자 또는 역할에 대한 권한을 검색합니다.

예를 들어:

res := e.GetPermissionsForUserInDomain("alice", "domain1")

AddRoleForUserInDomain()

AddRoleForUserInDomain() 함수는 도메인 내의 사용자에게 역할을 추가합니다. 사용자가 이미 역할을 가지고 있으면 false를 반환합니다(변경 사항 없음).

예를 들어:

ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")

DeleteRoleForUserInDomain()

DeleteRoleForUserInDomain() 함수는 도메인 내의 사용자에게서 역할을 제거합니다. 사용자가 역할을 가지고 있지 않으면 false를 반환합니다(변경 사항 없음).

예를 들어:

ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")

DeleteRolesForUserInDomain()

DeleteRolesForUserInDomain() 함수는 도메인 내의 사용자에게서 모든 역할을 제거합니다. 사용자가 역할을 가지고 있지 않으면 false를 반환합니다(변경 사항 없음).

예를 들어:

ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")

GetAllUsersByDomain()

GetAllUsersByDomain() 함수는 주어진 도메인과 연결된 모든 사용자를 검색합니다. 모델에 도메인이 정의되어 있지 않으면 빈 문자열 배열을 반환합니다.

예를 들어:

res := e.GetAllUsersByDomain("domain1")

DeleteAllUsersByDomain()

DeleteAllUsersByDomain() 함수는 주어진 도메인과 연결된 모든 사용자를 삭제합니다. 모델에 도메인이 정의되어 있지 않으면 false를 반환합니다.

예를 들어:

ok, err := e.DeleteAllUsersByDomain("domain1")

DeleteDomains()

DeleteDomains는 모든 연관된 사용자와 역할을 삭제합니다. 매개변수가 제공되지 않으면 모든 도메인을 삭제합니다.

예를 들어:

ok, err := e.DeleteDomains("domain1", "domain2")

GetAllDomains()

GetAllDomains는 모든 도메인을 가져옵니다.

예를 들어:

res, _ := e.GetAllDomains()
노트

name::domain과 같은 도메인을 처리하고 있다면, 예상치 못한 동작을 초래할 수 있습니다. Casbin에서, ::는 프로그래밍 언어의 for, if와 같은 예약어이므로, 도메인에 ::를 넣어서는 안됩니다.

GetAllRolesByDomain()

GetAllRolesByDomain은 도메인과 연관된 모든 역할을 가져옵니다.

예를 들어:

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을 반환할 것입니다.

ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
노트

사용자만 반환되며, 역할("g"의 2번째 인수)은 제외됩니다.