Ir al contenido principal

RoleManager API

RoleManager

El RoleManager proporciona una interfaz para definir operaciones para gestionar roles. La adición de una función de coincidencia al RoleManager permite el uso de comodines en nombres de roles y dominios.

AddNamedMatchingFunc()

La función AddNamedMatchingFunc agrega una MatchingFunc por Ptype al RoleManager. La MatchingFunc se utilizará al realizar la coincidencia de roles.

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

For example:

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

AddNamedDomainMatchingFunc()

La función AddNamedDomainMatchingFunc agrega una MatchingFunc por Ptype al RoleManager. La DomainMatchingFunc es similar a la MatchingFunc mencionada arriba.

For example:

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

GetRoleManager()

La función GetRoleManager obtiene el gestor de roles actual para g.

For example:

    rm := e.GetRoleManager()

GetNamedRoleManager()

La función GetNamedRoleManager obtiene el gestor de roles por Ptype nombrado.

For example:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

La función SetRoleManager establece el gestor de roles actual para g.

For example:

    e.SetRoleManager(rm)

SetNamedRoleManager()

La función SetNamedRoleManager establece el gestor de roles por Ptype nombrado.

For example:

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

Clear()

La función Clear borra todos los datos almacenados y reinicia el gestor de roles a su estado inicial.

For example:

    rm.Clear()

AddLink añade el enlace de herencia entre dos roles. role: name1 y role: name2. Domain es un prefijo para los roles (puede ser utilizado para otros propósitos).

For example:

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

DeleteLink elimina el enlace de herencia entre dos roles. role: name1 y role: name2. Domain es un prefijo para los roles (puede ser utilizado para otros propósitos).

For example:

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

HasLink determina si existe un enlace entre dos roles. role: name1 hereda role: name2. Domain es un prefijo para los roles (puede ser utilizado para otros propósitos).

For example:

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

GetRoles()

GetRoles obtiene los roles que un usuario hereda. Domain es un prefijo para los roles (puede ser utilizado para otros propósitos).

For example:

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

GetUsers()

GetUsers obtiene los usuarios que heredan un rol. Domain es un prefijo para los usuarios (puede ser utilizado para otros propósitos).

For example:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles imprime todos los roles en el log.

For example:

    rm.PrintRoles()

SetLogger()

SetLogger establece el logger del gestor de roles.

For example:

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

GetDomains()

GetDomains obtiene los dominios que un usuario tiene

For example:

    result, err := rm.GetDomains(name)