Zum Hauptinhalt springen

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.

    e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil

Zum Beispiel:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)

AddNamedDomainMatchingFunc()

Die Funktion AddNamedDomainMatchingFunc fügt eine MatchingFunc nach Ptype zum RoleManager hinzu. Die DomainMatchingFunc ähnelt der oben aufgeführten MatchingFunc.

Zum Beispiel:

    e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)

GetRoleManager()

Die Funktion GetRoleManager holt den aktuellen Rollenmanager für g.

Zum Beispiel:

    rm := e.GetRoleManager()

GetNamedRoleManager()

Die Funktion GetNamedRoleManager holt den Rollenmanager nach benanntem Ptype.

Zum Beispiel:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

Die Funktion SetRoleManager setzt den aktuellen Rollenmanager für g.

Zum Beispiel:

    e.SetRoleManager(rm)

SetNamedRoleManager()

Die Funktion SetNamedRoleManager setzt den Rollenmanager nach benanntem Ptype.

Zum Beispiel:

    rm := e.SetNamedRoleManager("g2", rm)

Clear()

Die Funktion Clear löscht alle gespeicherten Daten und setzt den Rollenmanager auf seinen Anfangszustand zurück.

Zum Beispiel:

    rm.Clear()

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:

    rm.AddLink("u1", "g1", "domain1")

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:

    rm.DeleteLink("u1", "g1", "domain1")

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:

    rm.HasLink("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:

    rm.GetRoles("u1", "domain1")

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:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles druckt alle Rollen ins Log.

Zum Beispiel:

    rm.PrintRoles()

SetLogger()

SetLogger setzt den Logger des Rollenmanagers.

Zum Beispiel:

    logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()

GetDomains()

GetDomains erhält Domains, die ein Benutzer hat

Zum Beispiel:

    result, err := rm.GetDomains(name)