Rollen-Manager-API
Rollenmanager
RoleManager stellt eine Schnittstelle zur Verfügung, um die Operationen zur Verwaltung von Rollen zu definieren. Das Hinzufügen der passenden Funktion zum Rollenmanager ermöglicht die Verwendung von Platzhaltern in Rollennamen und Domain.
AddNamedMatchingFunc()
AddNamedMatchingFunc füge MatchingFunc von ptype RoleManager hinzu. MatchingFunc funktioniert beim Abspielen von Rollen.
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:
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()
AddNamedDomainMatchingFunc fügt MatchingFunc per ptype dem RoleManager hinzu. DomainMatchingFunc
ist ähnlich wie MatchingFunc
oben aufgelistet.
Zum Beispiel:
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()
GetRoleManager holt den aktuellen Rollenmanager für g
.
Zum Beispiel:
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
Clear()
Clear löscht alle gespeicherten Daten und setzt den Rollenmanager auf den Ausgangszustand.
Zum Beispiel:
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
AddLink fügt die Vererbung 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:
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
LöschLink()
DeleteLink löscht die Vererbung 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:
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
HasLink bestimmt, ob eine Verbindung zwischen zwei Rollen besteht. Rolle: name1 vererbt die Rolle: name2. Domain ist ein Präfix für die Rollen (kann für andere Zwecke verwendet werden).
Zum Beispiel:
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 vererbt hat. Domain ist ein Präfix für die Rollen (kann für andere Zwecke verwendet werden).
Zum Beispiel:
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
Getusers bekommen die Benutzer, die eine Rolle erben. Domain ist ein Präfix für die Benutzer (kann für andere Zwecke verwendet werden).
Zum Beispiel:
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
Druckrollen
PrintRoles druckt alle Rollen zu protokollieren.
Zum Beispiel:
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger setzt den Logger für Rollenmanager.
Zum Beispiel:
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains erhalten Domänen, die ein Benutzer hat
Zum Beispiel:
result, err := rm.GetDomains(name)