RoleManager API
RoleManager
Der RoleManager bietet eine Schnittstelle zur Definition von Operationen zur Rollenverwaltung. Die Ergänzung einer passenden Funktion zum RoleManager ermöglicht die Verwendung von Platzhaltern in Rollennamen und Domänen.
AddNamedMatchingFunc()
Die Funktion AddNamedMatchingFunc
fügt eine MatchingFunc
nach Ptype zum RoleManager hinzu. Die MatchingFunc
wird verwendet, wenn eine Rollenabgleichung durchgeführt wird.
- Go
- Node.js
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
Zum Beispiel:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
Die Funktion AddNamedDomainMatchingFunc
fügt eine MatchingFunc
nach Ptype zum RoleManager hinzu. Die DomainMatchingFunc
ähnelt der oben aufgeführten MatchingFunc
.
Zum Beispiel:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
Die Funktion GetRoleManager
holt den aktuellen Rollenmanager für g
.
Zum Beispiel:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
Die Funktion GetNamedRoleManager
holt den Rollenmanager nach benanntem Ptype.
Zum Beispiel:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
Die Funktion SetRoleManager
setzt den aktuellen Rollenmanager für g
.
Zum Beispiel:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
Die Funktion SetNamedRoleManager
setzt den Rollenmanager nach benanntem Ptype.
Zum Beispiel:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("g2", rm)
Clear()
Die Funktion Clear
löscht alle gespeicherten Daten und setzt den Rollenmanager auf seinen Anfangszustand zurück.
Zum Beispiel:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
AddLink fügt den Vererbungslink zwischen zwei Rollen hinzu. Rolle: name1 und Rolle: name2. Domain ist ein Präfix für die Rollen (kann für andere Zwecke verwendet werden).
Zum Beispiel:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
DeleteLink löscht den Vererbungslink zwischen zwei Rollen. Rolle: name1 und Rolle: name2. Domain ist ein Präfix für die Rollen (kann für andere Zwecke verwendet werden).
Zum Beispiel:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
HasLink bestimmt, ob ein Link zwischen zwei Rollen besteht. Rolle: name1 erbt Rolle: name2. Domain ist ein Präfix für die Rollen (kann auch für andere Zwecke verwendet werden).
Zum Beispiel:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("u1", "g1", "domain1")
GetRoles()
GetRoles erhält die Rollen, die ein Benutzer erbt. Domain ist ein Präfix für die Rollen (kann auch für andere Zwecke verwendet werden).
Zum Beispiel:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
GetUsers erhält die Benutzer, die eine Rolle erben. Domain ist ein Präfix für die Benutzer (kann auch für andere Zwecke verwendet werden).
Zum Beispiel:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRoles druckt alle Rollen ins Log.
Zum Beispiel:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger setzt den Logger des Rollenmanagers.
Zum Beispiel:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains erhält Domains, die ein Benutzer hat
Zum Beispiel:
- Go
result, err := rm.GetDomains(name)