Questa documentazione è stata tradotta automaticamente dall'IA.
ACL (Access Control List) viene utilizzato per controllare le autorizzazioni di operazione sulle risorse. Lei può assegnare le autorizzazioni ai ruoli, oppure ignorare le restrizioni di ruolo e vincolare direttamente le autorizzazioni. Il sistema ACL offre un meccanismo flessibile di gestione delle autorizzazioni, supportando frammenti di autorizzazione, middleware, valutazione condizionale e altri metodi.
Gli oggetti ACL appartengono alle fonti dati (dataSource.acl). L'ACL della fonte dati principale può essere acceduto rapidamente tramite app.acl. Per l'utilizzo dell'ACL di altre fonti dati, consulti il capitolo Gestione delle fonti dati.
I frammenti di autorizzazione (Snippet) possono registrare combinazioni di autorizzazioni comunemente utilizzate come unità di autorizzazione riutilizzabili. Dopo che un ruolo è stato associato a uno snippet, ottiene il set di autorizzazioni corrispondente, riducendo la configurazione duplicata e migliorando l'efficienza della gestione delle autorizzazioni.
acl.allow() viene utilizzato per consentire a determinate operazioni di bypassare i vincoli di ruolo, ed è adatto per API pubbliche, scenari che richiedono una valutazione dinamica delle autorizzazioni, o casi in cui la valutazione delle autorizzazioni deve basarsi sul contesto della richiesta.
Descrizione del parametro condition:
'public':Qualsiasi utente (inclusi gli utenti non autenticati) può accedere senza alcuna autenticazione'loggedIn':Solo gli utenti loggati possono accedere, richiede un'identità utente valida(ctx) => Promise<boolean> o (ctx) => boolean:Funzione personalizzata che determina dinamicamente se l'accesso è consentito in base al contesto della richiesta, può implementare logiche di autorizzazione complesseacl.use() viene utilizzato per registrare middleware di autorizzazione personalizzati, consentendo l'inserimento di logiche personalizzate nel flusso di controllo delle autorizzazioni. Viene solitamente utilizzato in combinazione con ctx.permission per definire regole di autorizzazione personalizzate. È adatto per scenari che richiedono un controllo delle autorizzazioni non convenzionale, come moduli pubblici che necessitano di verifica password personalizzata, controlli dinamici delle autorizzazioni basati sui parametri della richiesta, ecc.
Scenari applicativi tipici:
Controllare le autorizzazioni tramite ctx.permission:
Descrizione della proprietà ctx.permission:
skip: true:Ignora i successivi controlli delle autorizzazioni ACL e consente direttamente l'accessoaddFixedParams può aggiungere vincoli di ambito dati (filter) fissi a determinate operazioni sulle risorse. Questi vincoli bypassano le restrizioni di ruolo e vengono applicati direttamente, solitamente utilizzati per proteggere i dati critici del sistema.
Suggerimento:
addFixedParamspuò essere utilizzato per impedire che dati sensibili vengano accidentalmente eliminati o modificati, come ruoli di sistema predefiniti, account amministratore, ecc. Questi vincoli agiscono in combinazione con le autorizzazioni di ruolo, garantendo che anche con le autorizzazioni non sia possibile manipolare i dati protetti.
acl.can() viene utilizzato per verificare se un determinato ruolo ha l'autorizzazione per eseguire un'operazione specificata, restituendo un oggetto risultato di autorizzazione o null. È comunemente utilizzato nella logica di business per valutare dinamicamente le autorizzazioni, ad esempio in middleware o nei gestori di operazioni per decidere se consentire l'esecuzione di determinate operazioni in base al ruolo.
Suggerimento: Se vengono passati più ruoli, ogni ruolo verrà controllato in sequenza e verrà restituito il risultato del primo ruolo che ha l'autorizzazione.
Definizioni di tipo:
Se Lei desidera che le operazioni personalizzate siano configurabili nell'interfaccia (ad esempio, visualizzate nella pagina di gestione dei ruoli), deve utilizzare setAvailableAction per registrarle. Le operazioni registrate appariranno nell'interfaccia di configurazione delle autorizzazioni, dove gli amministratori potranno configurare le autorizzazioni di operazione per i diversi ruoli.
Descrizione dei parametri:
{{t("key")}})'new-data':Operazioni che creano nuovi dati (come importazione, aggiunta, ecc.)'existing-data':Operazioni che modificano dati esistenti (come aggiornamento, eliminazione, ecc.)'new-data'Dopo la registrazione, questa operazione apparirà nell'interfaccia di configurazione delle autorizzazioni, dove gli amministratori potranno configurare le autorizzazioni dell'operazione nella pagina di gestione dei ruoli.