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)