Zum Hauptinhalt springen

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 add MatchingFunc by ptype to RoleManager. MatchingFunc funktioniert beim Abspielen von Rollen.

    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()

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)

GetRoleManager()

GetRoleManager holt den aktuellen Rollenmanager für g.

Zum Beispiel:

    rm := e.GetRoleManager()

GetNamedRoleManager()

GetNamedRoleManager gets the role manager by named ptype.

Zum Beispiel:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

SetRoleManager sets the current role manager for g.

Zum Beispiel:

    e.SetRoleManager(rm)

SetNamedRoleManager()

SetNamedRoleManager sets the role manager by named ptype.

Zum Beispiel:

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

Clear()

Clear löscht alle gespeicherten Daten und setzt den Rollenmanager auf den Ausgangszustand.

Zum Beispiel:

    rm.Clear()

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")

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")

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")

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")

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")

PrintRoles()

PrintRoles druckt alle Rollen zu protokollieren.

For example:

    rm.PrintRoles()

SetLogger()

SetLogger setzt den Logger für Rollenmanager.

For example:

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

GetDomains()

GetDomains erhalten Domänen, die ein Benutzer hat

For example:

    result, err := rm.GetDomains(name)