RBAC with Domains API
Un'API più user-friendly per RBAC con domini. Questa API è un sottoinsieme dell'API di Gestione. Gli utenti RBAC possono utilizzare questa API per semplificare il loro codice.
Riferimento
La variabile globale e
rappresenta l'istanza 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 funzione GetUsersForRoleInDomain()
recupera gli utenti che hanno un ruolo all'interno di un dominio.
Ad esempio:
- 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 funzione GetRolesForUserInDomain()
recupera i ruoli che un utente ha all'interno di un dominio.
Ad esempio:
- 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 funzione GetPermissionsForUserInDomain()
recupera le autorizzazioni per un utente o un ruolo all'interno di un dominio.
Ad esempio:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
La funzione AddRoleForUserInDomain()
aggiunge un ruolo per un utente all'interno di un dominio. Restituisce false
se l'utente ha già il ruolo (nessuna modifica effettuata).
Per esempio:
- 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 funzione DeleteRoleForUserInDomain()
rimuove un ruolo per un utente all'interno di un dominio. Restituisce false
se l'utente non ha il ruolo (nessuna modifica effettuata).
Per esempio:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
La funzione DeleteRolesForUserInDomain()
rimuove tutti i ruoli per un utente all'interno di un dominio. Restituisce false
se l'utente non ha alcun ruolo (nessuna modifica effettuata).
Per esempio:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
La funzione GetAllUsersByDomain()
recupera tutti gli utenti associati al dominio specificato. Restituisce un array di stringhe vuoto se nel modello non è definito alcun dominio.
Ad esempio:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
La funzione DeleteAllUsersByDomain()
elimina tutti gli utenti associati al dominio specificato. Restituisce false
se nel modello non è definito alcun dominio.
Ad esempio:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains
eliminerebbe tutti gli utenti e i ruoli associati.
Eliminerebbe tutti i domini se il parametro non è fornito.
Ad esempio:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains recupererebbe tutti i domini.
Ad esempio:
- Go
res, _ := e.GetAllDomains()
Se stai gestendo un dominio come name::domain
, potrebbe portare a comportamenti inaspettati. In Casbin, ::
è una parola chiave riservata, proprio come for
, if
in un linguaggio di programmazione, non dovremmo mai inserire ::
in un dominio.
GetAllRolesByDomain()
GetAllRolesByDomain recupererebbe tutti i ruoli associati al dominio.
Ad esempio:
- Go
res := e.GetAllRolesByDomain("domain1")
Questo metodo non si applica ai domini che hanno una relazione di ereditarietà, nota anche come ruoli impliciti.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain restituisce utenti impliciti basati su risorsa e dominio.
Ad esempio:
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") restituirà [["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Saranno restituiti solo gli utenti, i ruoli (2° argomento in "g") saranno esclusi.