RoleManager API
RoleManager
Il RoleManager fornisce un'interfaccia per definire operazioni di gestione dei ruoli. L'aggiunta di una funzione di corrispondenza al RoleManager permette l'uso di caratteri jolly nei nomi dei ruoli e nei domini.
AddNamedMatchingFunc()
La funzione AddNamedMatchingFunc aggiunge una MatchingFunc per Ptype al RoleManager. La MatchingFunc verrà utilizzata durante l'esecuzione del matching dei ruoli.
- 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');
Ad esempio:
- 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 funzione AddNamedDomainMatchingFunc aggiunge una MatchingFunc per Ptype al RoleManager. La DomainMatchingFunc è simile alla MatchingFunc elencata sopra.
Ad esempio:
- 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 funzione GetRoleManager ottiene il gestore dei ruoli corrente per g.
Ad esempio:
- Go
- Node.js
- Python
rm := e.GetRoleManager()
const rm = await e.getRoleManager();
rm = e.get_role_manager()
GetNamedRoleManager()
La funzione GetNamedRoleManager ottiene il gestore dei ruoli per il tipo Ptype nominato.
Ad esempio:
- Go
- Node.js
- Python
rm := e.GetNamedRoleManager("g2")
const rm = await e.getNamedRoleManager("g2");
rm = e.get_named_role_manager("g2")
SetRoleManager()
La funzione SetRoleManager imposta il gestore dei ruoli corrente per g.
Ad esempio:
- Go
- Node.js
- Python
e.SetRoleManager(rm)
e.setRoleManager(rm);
rm = e.set_role_manager(rm)
SetNamedRoleManager()
La funzione SetNamedRoleManager imposta il gestore dei ruoli per il tipo Ptype nominato.
Ad esempio:
- Go
- Python
rm := e.SetNamedRoleManager("g2", rm)
rm = e.set_role_manager("g2", rm)
Clear()
La funzione Clear cancella tutti i dati memorizzati e reimposta il gestore dei ruoli al suo stato iniziale.
Ad esempio:
- Go
- Node.js
- Python
rm.Clear()
await rm.clear();
rm.clear()
AddLink()
AddLink aggiunge il collegamento di ereditarietà tra due ruoli. ruolo: nome1 e ruolo: nome2. Il dominio è un prefisso per i ruoli (può essere utilizzato per altri scopi).
Ad esempio:
- Go
- Node.js
- Python
rm.AddLink("u1", "g1", "domain1")
await rm.addLink('u1', 'g1', 'domain1');
rm.add_link("u1", "g1", "domain1")
DeleteLink()
DeleteLink elimina il collegamento di ereditarietà tra due ruoli. ruolo: nome1 e ruolo: nome2. Il dominio è un prefisso per i ruoli (può essere utilizzato per altri scopi).
Ad esempio:
- Go
- Node.js
- Python
rm.DeleteLink("u1", "g1", "domain1")
await rm.deleteLink('u1', 'g1', 'domain1');
rm.delete_link("u1", "g1", "domain1")
HasLink()
HaLink determina se esiste un collegamento tra due ruoli. ruolo: nome1 eredita il ruolo: nome2. Il dominio è un prefisso per i ruoli (può essere utilizzato per altri scopi).
Ad esempio:
- Go
- Node.js
- Python
rm.HasLink("u1", "g1", "domain1")
await rm.hasLink('u1', 'g1', 'domain1');
rm.has_link("u1", "g1", "domain1")
GetRoles()
OttieniRuoli ottiene i ruoli che un utente eredita. Il dominio è un prefisso per i ruoli (può essere utilizzato per altri scopi).
Ad esempio:
- Go
- Node.js
- Python
rm.GetRoles("u1", "domain1")
await rm.getRoles('u1', 'domain1');
rm.get_roles("u1", "domain")
GetUsers()
GetUsers ottiene gli utenti che ereditano un ruolo. Il dominio è un prefisso per gli utenti (può essere utilizzato per altri scopi).
Ad esempio:
- Go
- Node.js
- Python
rm.GetUsers("g1")
await rm.getUsers('g1');
rm.get_users("g1")
PrintRoles()
PrintRoles stampa tutti i ruoli nel log.
Ad esempio:
- Go
- Node.js
- Python
rm.PrintRoles()
await rm.printRoles();
rm.print_roles()
SetLogger()
SetLogger imposta il logger del gestore dei ruoli.
Ad esempio:
- Go
logger := log.DefaultLogger{}
logger.EnableLog(true)
rm.SetLogger(&logger)
_ = rm.PrintRoles()
GetDomains()
GetDomains ottiene i domini che un utente possiede
Ad esempio:
- Go
result, err := rm.GetDomains(name)