Sto facendo questa domanda a un collega perché non ha abbastanza reputazione per pubblicare immagini in una domanda
Durante il nostro normale sviluppo abbiamo riscontrato un deficit nel nostro REST Api. Visualizziamo entità nella nostra interfaccia utente come questa. Per cui i pulsanti in alto sono le cosiddette azioni.
Nell'immagine puoi vedere i pulsanti che agiscono come azioni e un componente Kendo Grid / Table. La voce ReportExecutionJob è selezionata nella tabella e ora le azioni possono essere utilizzate su quella selezione oppure no.
Dettagli approfonditi
Un'azione stessa è generica. Non conosce un sacco di roba o metadati e altro oltre esegue semplicemente un'attività su un dato oggetto. Ad esempio, puoi aggiungere un'azione chiamata elimina e tenterà di eliminare qualsiasi entità tu gli abbia assegnato.
Abbiamo un sistema di autorizzazione degli utenti e un sistema di autorizzazione generale separato che indicherà quali azioni sono consentite su una determinata entità.
Esempio : Può esserci un permesso per eseguire l'azione di eliminazione sull'entità X, ma nella stessa istanza l'utente potrebbe non avere il permesso di richiamare l'azione.
problema
Quando per esempio è selezionato ReportExecutionJob eseguiamo un controllo in FrontEnd se l'azione (Pausa ad esempio) è generalmente consentita per l'Entità selezionata. Successivamente il backend mantiene la logica aziendale per verificare se l'utente ha il permesso di richiamare quell'azione sulla voce selezionata.
Risultante in due luoghi che gestiscono un argomento / problema.
Domande
Ci sono alcune domande su come farlo nel modo più efficiente e sicuro.
Suggeriresti di ottenere le informazioni (consentite sull'entità, consentite dall'utente) come parte dell'entità nella risposta?
Dovrebbe essere caricato dall'azione stessa (quindi quando qualcosa è selezionato, viene eseguita una richiesta in background che ottiene un risultato se l'azione è abilitata o disabilitata sull'entità e se l'utente è consentito)
Esiste un metodo o una raccomandazione sulle migliori pratiche?
E anche il mio collega ha la domanda quando tutto questo dovrebbe essere fatto. Quando si carica la pagina, quando si seleziona la voce nella tabella o quando si tenta di eseguire l'azione?