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)