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)