Passer au contenu principal

RoleManager API

RoleManager

Le RoleManager fournit une interface pour définir des opérations pour gérer les rôles. L'ajout d'une fonction de correspondance au RoleManager permet l'utilisation de caractères génériques dans les noms de rôles et les domaines.

AddNamedMatchingFunc()

La fonction AddNamedMatchingFunc ajoute une MatchingFunc par Ptype au RoleManager. La MatchingFunc sera utilisée lors de la correspondance des rôles.

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

Par exemple:

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

AddNamedDomainMatchingFunc()

La fonction AddNamedDomainMatchingFunc ajoute une MatchingFunc par Ptype au RoleManager. La DomainMatchingFunc est similaire à la MatchingFunc mentionnée ci-dessus.

Par exemple:

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

GetRoleManager()

La fonction GetRoleManager obtient le gestionnaire de rôles actuel pour g.

Par exemple:

    rm := e.GetRoleManager()

GetNamedRoleManager()

La fonction GetNamedRoleManager obtient le gestionnaire de rôles par Ptype nommé.

Par exemple:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

La fonction SetRoleManager définit le gestionnaire de rôles actuel pour g.

Par exemple:

    e.SetRoleManager(rm)

SetNamedRoleManager()

La fonction SetNamedRoleManager définit le gestionnaire de rôles par Ptype nommé.

Par exemple:

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

Clear()

La fonction Clear efface toutes les données stockées et réinitialise le gestionnaire de rôles à son état initial.

Par exemple:

    rm.Clear()

AddLink ajoute le lien d'héritage entre deux rôles. rôle: name1 et rôle: name2. Domain est un préfixe pour les rôles (peut être utilisé à d'autres fins).

Par exemple:

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

DeleteLink supprime le lien d'héritage entre deux rôles. rôle: name1 et rôle: name2. Domain est un préfixe pour les rôles (peut être utilisé à d'autres fins).

Par exemple:

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

HasLink détermine si un lien existe entre deux rôles. rôle: name1 hérite du rôle: name2. Domaine est un préfixe pour les rôles (peut être utilisé à d'autres fins).

Par exemple:

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

GetRoles()

GetRoles obtient les rôles qu'un utilisateur hérite. Domaine est un préfixe pour les rôles (peut être utilisé à d'autres fins).

Par exemple:

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

GetUsers()

GetUsers obtient les utilisateurs qui héritent d'un rôle. Domaine est un préfixe pour les utilisateurs (peut être utilisé à d'autres fins).

Par exemple:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles imprime tous les rôles dans le journal.

Par exemple:

    rm.PrintRoles()

SetLogger()

SetLogger définit le journal du gestionnaire de rôles.

Par exemple:

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

GetDomains()

GetDomains obtient les domaines qu'un utilisateur possède

Par exemple:

    result, err := rm.GetDomains(name)