Zum Hauptinhalt springen

Rollen-Manager-API

Rollenmanager

The RoleManager provides an interface for defining operations to manage roles. The addition of a matching function to the RoleManager allows the use of wildcards in role names and domains.

AddNamedMatchingFunc()

The AddNamedMatchingFunc function adds a MatchingFunc by Ptype to the RoleManager. The MatchingFunc will be used when performing role matching.

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

The AddNamedDomainMatchingFunc function adds a MatchingFunc by Ptype to the RoleManager. The DomainMatchingFunc is similar to the MatchingFunc listed above.

Zum Beispiel:

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

GetRoleManager()

The GetRoleManager function gets the current role manager for g.

Zum Beispiel:

    rm := e.GetRoleManager()

GetNamedRoleManager()

The GetNamedRoleManager function gets the role manager by named Ptype.

Zum Beispiel:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

The SetRoleManager function sets the current role manager for g.

Zum Beispiel:

    e.SetRoleManager(rm)

SetNamedRoleManager()

The SetNamedRoleManager function sets the role manager by named Ptype.

Zum Beispiel:

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

Clear()

The Clear function clears all stored data and resets the role manager to its initial state.

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)