RBAC with Domains API
Eine benutzerfreundlichere API für RBAC mit Domänen. Diese API ist eine Teilmenge der Management-API. RBAC-Benutzer können diese API verwenden, um ihren Code zu vereinfachen.
Referenz
Die globale Variable e
repräsentiert die Enforcer-Instanz.
- 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()
Die Funktion GetUsersForRoleInDomain()
ruft die Benutzer ab, die eine Rolle innerhalb einer Domäne haben.
Zum Beispiel:
- 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()
Die Funktion GetRolesForUserInDomain()
ruft die Rollen ab, die ein Benutzer innerhalb einer Domäne hat.
Zum Beispiel:
- 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()
Die Funktion GetPermissionsForUserInDomain()
ruft die Berechtigungen für einen Benutzer oder eine Rolle innerhalb einer Domäne ab.
Zum Beispiel:
- Go
- Java
res := e.GetPermissionsForUserInDomain("alice", "domain1")
List<List<String>> res = e.getPermissionsForUserInDomain("alice", "domain1");
AddRoleForUserInDomain()
Die Funktion AddRoleForUserInDomain()
fügt einem Benutzer innerhalb einer Domäne eine Rolle hinzu. Es gibt false
zurück, wenn der Benutzer die Rolle bereits hat (keine Änderungen vorgenommen).
Zum Beispiel:
- 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()
Die Funktion DeleteRoleForUserInDomain()
entfernt eine Rolle für einen Benutzer innerhalb einer Domäne. Es gibt false
zurück, wenn der Benutzer die Rolle nicht hat (keine Änderungen vorgenommen).
Zum Beispiel:
- Go
- Java
ok, err := e.DeleteRoleForUserInDomain("alice", "admin", "domain1")
boolean ok = e.deleteRoleForUserInDomain("alice", "admin", "domain1");
DeleteRolesForUserInDomain()
Die Funktion DeleteRolesForUserInDomain()
entfernt alle Rollen für einen Benutzer innerhalb einer Domäne. Es gibt false
zurück, wenn der Benutzer keine Rollen hat (keine Änderungen vorgenommen).
Zum Beispiel:
- Go
ok, err := e.DeleteRolesForUserInDomain("alice", "domain1")
GetAllUsersByDomain()
Die Funktion GetAllUsersByDomain()
ruft alle Benutzer ab, die mit der angegebenen Domäne verknüpft sind. Es gibt ein leeres String-Array zurück, wenn keine Domäne im Modell definiert ist.
Zum Beispiel:
- Go
res := e.GetAllUsersByDomain("domain1")
DeleteAllUsersByDomain()
Die Funktion DeleteAllUsersByDomain()
löscht alle Benutzer, die mit der angegebenen Domäne verknüpft sind. Es gibt false
zurück, wenn keine Domäne im Modell definiert ist.
Zum Beispiel:
- Go
ok, err := e.DeleteAllUsersByDomain("domain1")
DeleteDomains()
DeleteDomains würde alle zugehörigen Benutzer und Rollen löschen. Es würde alle Domains löschen, wenn kein Parameter angegeben ist.
Zum Beispiel:
- Go
ok, err := e.DeleteDomains("domain1", "domain2")
GetAllDomains()
GetAllDomains würde alle Domains abrufen.
Zum Beispiel:
- Go
res, _ := e.GetAllDomains()
Wenn Sie eine Domain wie name::domain
behandeln, kann dies zu unerwartetem Verhalten führen. In Casbin ist ::
ein reserviertes Schlüsselwort, genau wie for
, if
in einer Programmiersprache, wir sollten niemals ::
in einer Domain setzen.
GetAllRolesByDomain()
GetAllRolesByDomain würde alle Rollen abrufen, die mit der Domain verknüpft sind.
Zum Beispiel:
- Go
res := e.GetAllRolesByDomain("domain1")
Diese Methode gilt nicht für Domains, die eine Vererbungsbeziehung haben, auch bekannt als implizite Rollen.
GetImplicitUsersForResourceByDomain()
GetImplicitUsersForResourceByDomain gibt impliziten Benutzer basierend auf Ressource und Domain zurück.
Zum Beispiel:
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") wird ["alice", "domain1", "data1", "read"],["alice", "domain1", "data1", "write"]], nil
zurückgeben
- Go
ImplicitUsers, err := e.GetImplicitUsersForResourceByDomain("data1", "domain1")
Es werden nur Benutzer zurückgegeben, Rollen (2. Argument in "g") werden ausgeschlossen.