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.
- Go
- Node.js
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
For example:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
La función AddNamedDomainMatchingFunc
agrega una MatchingFunc
por Ptype al RoleManager. La DomainMatchingFunc
es similar a la MatchingFunc
mencionada arriba.
For example:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
La función GetRoleManager
obtiene el gestor de roles actual para g
.
For example:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
La función GetNamedRoleManager
obtiene el gestor de roles por Ptype nombrado.
For example:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
La función SetRoleManager
establece el gestor de roles actual para g
.
For example:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
La función SetNamedRoleManager
establece el gestor de roles por Ptype nombrado.
For example:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("g2", rm)
Clear()
La función Clear
borra todos los datos almacenados y reinicia el gestor de roles a su estado inicial.
For example:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
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:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
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:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
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:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("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:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
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:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRoles imprime todos los roles en el log.
For example:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger establece el logger del gestor de roles.
For example:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains obtiene los dominios que un usuario tiene
For example:
- Go
result, err := rm.GetDomains(name)