Il problema non è scrivere il controllo giusto. È scriverlo ovunque.
Nessuno sbaglia il controllo di autorizzazione sull'endpoint principale di un'entità: è la prima cosa a cui si pensa e la prima che viene rivista.
Gli incidenti nascono altrove, e quasi sempre negli stessi posti: un'esportazione aggiunta in fretta, una funzione di ricerca globale scritta per il supporto interno e poi esposta, un report che aggrega dati saltando il filtro, un'interfaccia creata per un'integrazione e mai rivista con la stessa attenzione. Il codice funziona: fa quello che c'è scritto, e quello che c'è scritto è incompleto.
Quando i permessi sono dichiarati sul dominio invece che scritti nei percorsi, quei percorsi non hanno un modo per essere incompleti: attraversano lo stesso motore di autorizzazione delle schermate principali. Non è una garanzia contro ogni errore possibile — un permesso dichiarato male resta dichiarato male — ma sposta il rischio da "qualcuno ha dimenticato" a "qualcuno ha dichiarato la regola sbagliata", che è un errore molto più facile da trovare perché è scritto in un documento che si può leggere.