주요 콘텐츠로 건너뛰기

RoleManager API

RoleManager

RoleManager는 역할을 관리하기 위한 작업을 정의하는 인터페이스를 제공합니다. RoleManager에 일치 함수를 추가하면 역할 이름과 도메인에서 와일드카드를 사용할 수 있습니다.

AddNamedMatchingFunc()

AddNamedMatchingFunc 함수는 Ptype에 따라 MatchingFunc를 RoleManager에 추가합니다. MatchingFunc는 역할 매칭을 수행할 때 사용됩니다.

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

예를 들면:

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

AddNamedDomainMatchingFunc()

AddNamedDomainMatchingFunc 함수는 Ptype에 따라 MatchingFunc를 RoleManager에 추가합니다. DomainMatchingFunc은 위에 나열된 MatchingFunc와 유사합니다.

예를 들면:

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

GetRoleManager()

GetRoleManager 함수는 g에 대한 현재 역할 관리자를 가져옵니다.

예를 들면:

    rm := e.GetRoleManager()

GetNamedRoleManager()

GetNamedRoleManager 함수는 명명된 Ptype에 의해 역할 관리자를 가져옵니다.

예를 들면:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

SetRoleManager 함수는 g에 대한 현재 역할 관리자를 설정합니다.

예를 들면:

    e.SetRoleManager(rm)

SetNamedRoleManager()

SetNamedRoleManager 함수는 명명된 Ptype에 의해 역할 관리자를 설정합니다.

예를 들면:

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

Clear()

Clear 함수는 모든 저장된 데이터를 지우고 역할 관리자를 초기 상태로 재설정합니다.

예를 들면:

    rm.Clear()

AddLink는 두 역할 사이의 상속 링크를 추가합니다. 역할: name1 및 역할: name2. 도메인은 역할에 대한 접두사입니다(다른 목적으로 사용할 수 있음).

예를 들면:

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

DeleteLink는 두 역할 사이의 상속 링크를 삭제합니다. 역할: name1 및 역할: name2. 도메인은 역할에 대한 접두사입니다(다른 목적으로 사용할 수 있음).

예를 들면:

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

HasLink는 두 역할 사이에 링크가 있는지 확인합니다. 역할: name1은 역할: name2를 상속합니다. 도메인은 역할의 접두사입니다 (다른 목적으로 사용할 수 있음).

예를 들면:

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

GetRoles()

GetRoles는 사용자가 상속받는 역할을 가져옵니다. 도메인은 역할의 접두사입니다 (다른 목적으로 사용할 수 있음).

예를 들면:

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

GetUsers()

GetUsers는 역할을 상속받는 사용자를 가져옵니다. 도메인은 사용자의 접두사입니다 (다른 목적으로 사용할 수 있음).

예를 들면:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles는 모든 역할을 로그에 출력합니다.

예를 들면:

    rm.PrintRoles()

SetLogger()

SetLogger는 역할 관리자의 로거를 설정합니다.

예를 들면:

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

GetDomains()

GetDomains는 사용자가 가진 도메인을 가져옵니다.

예를 들면:

    result, err := rm.GetDomains(name)