Vai al contenuto principale

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.

e, err := NewEnforcer("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:

res := e.GetUsersForRoleInDomain("admin", "domain1")

GetRolesForUserInDomain()

La funzione GetRolesForUserInDomain() recupera i ruoli che un utente ha all'interno di un dominio.

Ad esempio:

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:

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:

ok, err := 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:

ok, err := 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:

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:

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:

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:

ok, err := e.DeleteDomains("domain1", "domain2")

GetAllDomains()

GetAllDomains recupererebbe tutti i domini.

Ad esempio:

res, _ := e.GetAllDomains()
nota

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:

res := e.GetAllRolesByDomain("domain1")
nota

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

ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
nota

Saranno restituiti solo gli utenti, i ruoli (2° argomento in "g") saranno esclusi.