Uno dei prodotti della mia azienda è un'applicazione web destinata a gestire la comunicazione tra agenti e i loro clienti per una società che non vende direttamente al compratore finale ma piuttosto vende agli agenti.
Sia gli agenti che i client devono essere associati a un account utente in questo sistema, ma gli agenti hanno il potere di gestire i client in qualsiasi modo piaccia, poiché appartengono a quel particolare agente. Il modo in cui gestiamo l'autorizzazione non è stabilendo cosa possono fare agenti e client, ma piuttosto assegnando ruoli agli utenti. Il ruolo di un utente è la sua essenza di autorizzazione senza necessariamente essere associato a un particolare utente. Quando l'agente aggiunge un nuovo utente, quell'utente ha automaticamente il ruolo del client, poiché il modo in cui è configurato, l'utente di un particolare ruolo può creare nuovi utenti di un ruolo inferiore e ruoli del client, non avendo alcun ruolo inferiore ad esso, non può creare nuovi utenti. Allo stesso modo, abbiamo ruoli amministrativi superiori agli agenti che possono creare e gestire qualsiasi ruolo agente o client, ma non possono creare altri ruoli amministrativi.
Esiste un solo account superutente che può creare e gestire utenti con ruoli amministrativi e, naturalmente, tutto il resto. (Come viene creato un superutente? Non lo è. Il nome utente e la password sono stabiliti al momento dell'installazione e tale nome utente e password sostituiscono qualsiasi ruolo o autorizzazione.)
Chiamiamo la sezione in cui gli utenti vengono creati e gestiti e, in generale, la configurazione del comportamento dell'applicazione Web per detto utente poiché questo è separato dal normale funzionamento dell'applicazione Web, il back-end. Il front-end, d'altra parte, rappresenta la parte riguardante l'acquisto e la vendita di prodotti (tutto ciò che non ha nulla a che fare con il comportamento del programma, in breve). Certo, il backend è usato tradizionalmente per indicare la parte dell'applicazione web che gli utenti non vedono, quindi forse non era il nome migliore. Tuttavia, ho pensato di condividere questo dato che potrebbe essere utile all'OP o a chiunque altro stia leggendo.