RBAC with Domains API
Una API más amigable para el usuario para RBAC con dominios. Esta API es un subconjunto de la API de Gestión. Los usuarios de RBAC pueden usar esta API para simplificar su código.
Referencia
La variable global e
representa la instancia de Enforcer.
- Go
- Node.js
- PHP
- Python
- .NET
- Rust
- Java
e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
const e = await newEnforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv')
$e = new Enforcer('examples/rbac_with_domains_model.conf', 'examples/rbac_with_domains_policy.csv');
e = casbin.Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")
var e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
let mut e = Enforcer::new("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv").await?;
Enforcer e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");
GetUsersForRoleInDomain()
La función GetUsersForRoleInDomain()
recupera los usuarios que tienen un rol dentro de un dominio.
Por ejemplo:
- Go
- Node.js
- Python
res := e.GetUsersForRoleInDomain("admin", "domain1")
const res = e.getUsersForRoleInDomain("admin", "domain1")
res = e.get_users_for_role_in_domain("admin", "domain1")
GetRolesForUserInDomain()
La función GetRolesForUserInDomain()
recupera los roles que un usuario tiene dentro de un dominio.
Por ejemplo:
- Go
- Node.js
- Python
- Java
res := e.GetRolesForUserInDomain("admin", "domain1")
const res = e.getRolesForUserInDomain("alice", "domain1")
res = e.get_roles_for_user_in_domain("alice", "domain1")
List<String> res = e.getRolesForUserInDomain("admin", "domain1");
GetPermissionsForUserInDomain()
La función GetPermissionsForUserInDomain()
recupera los permisos para un usuario o rol dentro de un dominio.
Por ejemplo:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
La función AddRoleForUserInDomain()
añade un rol para un usuario dentro de un dominio. Devuelve false
si el usuario ya tiene el rol (no se realizaron cambios).
Por ejemplo:
- Go
- Python
- Java
ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")
ok = e.add_role_for_user_in_domain("alice", "admin", "domain1")
boolean ok = e.addRoleForUserInDomain("alice", "admin", "domain1");
DeleteRoleForUserInDomain()
La función DeleteRoleForUserInDomain()
elimina un rol para un usuario dentro de un dominio. Devuelve false
si el usuario no tiene el rol (no se realizaron cambios).
Por ejemplo:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
La función DeleteRolesForUserInDomain()
elimina todos los roles para un usuario dentro de un dominio. Devuelve false
si el usuario no tiene ningún rol (no se realizaron cambios).
Por ejemplo:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
La función GetAllUsersByDomain()
recupera todos los usuarios asociados con el dominio dado. Devuelve un arreglo de cadenas vacío si no se define ningún dominio en el modelo.
Por ejemplo:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
La función DeleteAllUsersByDomain()
elimina todos los usuarios asociados con el dominio dado. Devuelve false
si no se define ningún dominio en el modelo.
Por ejemplo:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains eliminaría todos los usuarios y roles asociados. Eliminaría todos los dominios si no se proporciona un parámetro.
Por ejemplo:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains obtendría todos los dominios.
Por ejemplo:
- Go
res, _ := e.GetAllDomains()
Si estás manejando un dominio como name::domain
, puede llevar a un comportamiento inesperado. En Casbin, ::
es una palabra clave reservada, al igual que for
, if
en un lenguaje de programación, nunca deberíamos poner ::
en un dominio.
GetAllRolesByDomain()
GetAllRolesByDomain obtendría todos los roles asociados con el dominio.
Por ejemplo:
- Go
res := e.GetAllRolesByDomain("domain1")
Este método no se aplica a dominios que tienen una relación de herencia, también conocidos como roles implícitos.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain devuelve usuarios implícitos basados en el recurso y el dominio.
Por ejemplo:
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") devolverá ["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Solo se devolverán usuarios, los roles (2º arg en "g") serán excluidos.