RBAC with Domains API
Une API plus conviviale pour RBAC avec des domaines. Cette API est un sous-ensemble de l'API de gestion. Les utilisateurs RBAC peuvent utiliser cette API pour simplifier leur code.
Référence
La variable globale e
représente l'instance 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 fonction GetUsersForRoleInDomain()
récupère les utilisateurs qui ont un rôle dans un domaine.
Par exemple :
- 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 fonction GetRolesForUserInDomain()
récupère les rôles qu'un utilisateur a dans un domaine.
Par exemple :
- 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 fonction GetPermissionsForUserInDomain()
récupère les permissions pour un utilisateur ou un rôle dans un domaine.
Par exemple :
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
La fonction AddRoleForUserInDomain()
ajoute un rôle pour un utilisateur dans un domaine. Elle renvoie false
si l'utilisateur a déjà le rôle (aucun changement effectué).
Par exemple :
- 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 fonction DeleteRoleForUserInDomain()
supprime un rôle pour un utilisateur dans un domaine. Elle renvoie false
si l'utilisateur n'a pas le rôle (aucun changement effectué).
Par exemple :
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
La fonction DeleteRolesForUserInDomain()
supprime tous les rôles pour un utilisateur dans un domaine. Elle renvoie false
si l'utilisateur n'a aucun rôle (aucun changement effectué).
Par exemple :
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
La fonction GetAllUsersByDomain()
récupère tous les utilisateurs associés au domaine donné. Elle renvoie un tableau de chaînes de caractères vide si aucun domaine n'est défini dans le modèle.
Par exemple :
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
La fonction DeleteAllUsersByDomain()
supprime tous les utilisateurs associés au domaine donné. Elle renvoie false
si aucun domaine n'est défini dans le modèle.
Par exemple :
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains supprimerait tous les utilisateurs et rôles associés. Il supprimerait tous les domaines si aucun paramètre n'est fourni.
Par exemple :
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains obtiendrait tous les domaines.
Par exemple :
- Go
res, _ := e.GetAllDomains()
Si vous manipulez un domaine comme name::domain
, cela peut entraîner un comportement inattendu. Dans Casbin, ::
est un mot-clé réservé, tout comme for
, if
dans un langage de programmation, nous ne devrions jamais mettre ::
dans un domaine.
GetAllRolesByDomain()
GetAllRolesByDomain obtiendrait tous les rôles associés au domaine.
Par exemple :
- Go
res := e.GetAllRolesByDomain("domain1")
Cette méthode ne s'applique pas aux domaines qui ont une relation d'héritage, également connus sous le nom de rôles implicites.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain renvoie l'utilisateur implicite en fonction de la ressource et du domaine.
Par exemple :
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") renverra ["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Seuls les utilisateurs seront renvoyés, les rôles (2ème argument dans "g") seront exclus.