Passer au contenu principal

RBAC avec API Domains

Une API plus conviviale pour RBAC avec les domaines. Cette API est un sous-ensemble de Management API. Les utilisateurs de RBAC peuvent utiliser cette API pour simplifier le code.

Référence

la variable globale e est l'instance Enforcer .

e, err := NewEnforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv")

GetUsersForRoleInDomain()

GetUsersForRoleInDomain récupère les utilisateurs qui ont un rôle dans un domaine.

Par exemple :

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

GetRolesForUserInDomain()

GetRolesForUserInDomain récupère les rôles qu'un utilisateur a dans un domaine.

Par exemple :

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

GetPermissionsForUserInDomain()

GetPermissionsForUserInDomain récupère les permissions pour un utilisateur ou un rôle dans un domaine.

Par exemple :

res := e.GetPermissionsForUserInDomain("alice", "domain1")

AddRoleForUserInDomain()

AddRoleForUserInDomain ajoute un rôle pour un utilisateur dans un domaine. Renvoie false si l'utilisateur a déjà le rôle (aka non affecté).

Par exemple :

ok, err := e.AddRoleForUserInDomain("alice", "admin", "domain1")

DeleteRoleForUserInDomain()

Supprimer rôleForUserInDomain supprime un rôle pour un utilisateur dans un domaine. Renvoie false si l'utilisateur n'a pas le rôle (aka non affecté).

Par exemple :

ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")

DeleteRolesForUserInDomain()

Supprimer les RolesForUserInDomain supprime tous les rôles pour un utilisateur dans un domaine. Renvoie false si l'utilisateur n'a aucun rôle (aka non affecté).

Par exemple :

ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")

GetAllUsersByDomain()

GetAllUsersByDomain obtiendrait tous les utilisateurs associés au domaine. Retourne un tableau de chaîne vide si aucun domaine n'est défini dans le modèle.

Par exemple :

res := e.GetAllUsersByDomain("domain1")

DeleteAllUsersByDomain()

DeleteAllUsersByDomain supprimera tous les utilisateurs associés au domaine. Renvoie false si aucun domaine n'est défini dans le modèle.

Par exemple :

ok, err := e.DeleteAllUsersByDomain("domain1")

DeleteDomains()

DeleteDomains supprimera tous les utilisateurs et rôles associés. Cela supprimera tous les domaines si le paramètre n'est pas fourni.

Par exemple :

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

GetAllDomains()

GetAllDomains obtiendrait tous les domaines.

Par exemple :

res, _ := e.GetAllDomains()
note

Si vous gérez un domaine comme name::domain, cela peut conduire à un comportement inattendu. En Casbin, :: est un mot clé inversé, tout comme pour, si dans un langage de programmation, nous ne devrions jamais mettre :: dans un domaine.

GetImplicitUsersForResourceByDomain()

GetImplicitUsersForResourceByDomain return implicit user based on resource and domain.

For example:

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") will return [["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil

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

Only users will be returned, roles (2nd arg in "g") will be excluded.