Je conçois un système de gestion de cours qui a différents types d'utilisateurs, y compris sysadmin, directeur de succursale et utilisateur de branche. Comme vous pouvez vous y attendre, sysadmin peut gérer tous les enregistrements, le gestionnaire de succursale peut gérer tous les enregistrements de sa branche et l'utilisateur de la succursale ne peut gérer que ses enregistrements.Où dois-je filtrer les enregistrements?
Ma question est: où ce filtrage devrait-il être fait? Dois-je le faire à la couche DAL? Ou juste renvoyer tous les enregistrements de la DAL et ensuite faire le filtrage à une autre couche? J'ai cherché partout les meilleures pratiques en matière d'autorisation mais je n'ai rien trouvé qui explique clairement cet aspect.
Ceci est .NET en utilisant NHibernate pour le DAL. Ce que je ne sais pas, c'est si je devrais rendre la DAL au courant de l'utilisateur qui exécute les requêtes. – jesusbolivar
En général, le DAL ne devrait rien savoir de la * nature * des données, juste comment l'obtenir dans et hors de la base de données. Vous devriez avoir un modèle de domaine au sommet de la couche d'accès au contenu qui comprend ce qu'est un utilisateur et à quels objets il devrait avoir accès. –
Comment implémenteriez-vous une méthode comme GetRegistrationsForCourse? Où les enregistrements renvoyés doivent être filtrés en fonction de l'utilisateur qui les appelle. – jesusbolivar