Vai al contenuto principale

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.

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

Ad esempio:

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

AddNamedDomainMatchingFunc()

La funzione AddNamedDomainMatchingFunc aggiunge una MatchingFunc per Ptype al RoleManager. La DomainMatchingFunc è simile alla MatchingFunc elencata sopra.

Ad esempio:

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

GetRoleManager()

La funzione GetRoleManager ottiene il gestore dei ruoli corrente per g.

Ad esempio:

    rm := e.GetRoleManager()

GetNamedRoleManager()

La funzione GetNamedRoleManager ottiene il gestore dei ruoli per il tipo Ptype nominato.

Ad esempio:

    rm := e.GetNamedRoleManager("g2")

SetRoleManager()

La funzione SetRoleManager imposta il gestore dei ruoli corrente per g.

Ad esempio:

    e.SetRoleManager(rm)

SetNamedRoleManager()

La funzione SetNamedRoleManager imposta il gestore dei ruoli per il tipo Ptype nominato.

Ad esempio:

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

Clear()

La funzione Clear cancella tutti i dati memorizzati e reimposta il gestore dei ruoli al suo stato iniziale.

Ad esempio:

    rm.Clear()

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:

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

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:

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

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:

    rm.HasLink("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:

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

GetUsers()

GetUsers ottiene gli utenti che ereditano un ruolo. Il dominio è un prefisso per gli utenti (può essere utilizzato per altri scopi).

Ad esempio:

    rm.GetUsers("g1")

PrintRoles()

PrintRoles stampa tutti i ruoli nel log.

Ad esempio:

    rm.PrintRoles()

SetLogger()

SetLogger imposta il logger del gestore dei ruoli.

Ad esempio:

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

GetDomains()

GetDomains ottiene i domini che un utente possiede

Ad esempio:

    result, err := rm.GetDomains(name)