Il sistema che sto sviluppando è progettato per avere più organizzazioni, con utenti e ruoli per ciascuna organizzazione. Alcune organizzazioni possono interagire, altre no, e in generale le organizzazioni non sono autorizzate a vedere o modificare gli altri dati con alcune eccezioni.
Ho una classe modello A che manipola l'archiviazione dei dati in un contenitore di memorizzazione permanente di qualche tipo. Ho una classe di controller B che convalida l'input (compresa la verifica dei diritti di accesso) agli oggetti di classe A.
Le classi controller sono in una libreria separata dalle classi del modello.
Tutte le interazioni dell'utente vengono eseguite dalle classi di vista che sono di nuovo in una libreria separata (in questo caso esposta come servizi Web).
Tuttavia, sembra vi sia un possibile rischio per la sicurezza nel mantenere la logica di controllo degli accessi separata dal modello, poiché non verranno eseguiti controlli di sicurezza se il modello non ha accesso al controllore associato e vi si accede invece da qualche altro codice dovuto a qualche malintenzionato o errore del programmatore.
Devo inserire la logica di sicurezza nelle stesse classi del modello che intreccia queste preoccupazioni o devo mantenere la separazione come ho ora?