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.
- Go
- Node.js
e.AddNamedMatchingFunc("g", "", util.KeyMatch)
_, _ = e.AddGroupingPolicies([][]string{{"*", "admin", "domain1"}})
_, _ = e.GetRoleManager().HasLink("bob", "admin", "domain1") // -> true, nil
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
await e.addGroupingPolicies([['*', 'admin', 'domain1']]);
await e.getRoleManager().hasLink('bob', 'admin', 'domain1');
Par exemple:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedMatchingFunc('g', Util.keyMatchFunc);
AddNamedDomainMatchingFunc()
La fonction AddNamedDomainMatchingFunc
ajoute une MatchingFunc
par Ptype au RoleManager. La DomainMatchingFunc
est similaire à la MatchingFunc
mentionnée ci-dessus.
Par exemple:
- Go
- Node.js
e, _ := casbin.NewEnforcer("path/to/model", "path/to/policy")
e.AddNamedDomainMatchingFunc("g", "", util.MatchKey)
const e = await newEnforcer('path/to/model', 'path/to/policy');
await e.addNamedDomainMatchingFunc('g', Util.keyMatchFunc);
GetRoleManager()
La fonction GetRoleManager
obtient le gestionnaire de rôles actuel pour g
.
Par exemple:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
La fonction GetNamedRoleManager
obtient le gestionnaire de rôles par Ptype nommé.
Par exemple:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
La fonction SetRoleManager
définit le gestionnaire de rôles actuel pour g
.
Par exemple:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
La fonction SetNamedRoleManager
définit le gestionnaire de rôles par Ptype nommé.
Par exemple:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("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:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
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:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
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:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
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:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("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:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
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:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRoles imprime tous les rôles dans le journal.
Par exemple:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger définit le journal du gestionnaire de rôles.
Par exemple:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains obtient les domaines qu'un utilisateur possède
Par exemple:
- Go
result, err := rm.GetDomains(name)