Arrière-plan Chaque projet a un compte auquel il est associé. Chaque utilisateur peut avoir l'autorisation d'accéder à zéro à plusieurs comptes. Cela signifie que chaque utilisateur peut uniquement accéder à un sous-ensemble de projets en fonction des autorisations du compte de l'utilisateur.Autorisation de modèle objet - OO Design Question
L'objet Utilisateur est chargé lorsque l'utilisateur se connecte à l'application et que les autorisations de compte sont également chargées à ce stade. Cet objet Utilisateur est stocké dans le cache de l'application. Les projets sont chargés en fonction des besoins.
Question Quelle est la meilleure façon d'appliquer les limitations de compte? Nous souhaitons qu'il soit extrait de la logique de présentation réelle, mais nous ne pensons pas que ce soit nécessairement une bonne approche pour placer la logique d'autorisation dans l'objet Project, car cela dépend de l'objet User. Qu'en pensez-vous?
Exemple: (ASPX code de la page derrière)
Project oProject = New Project(projectId); //Pass an Int32 here
if (oProject.Load()) //This operation needs to check user permissions somehow
{ /* Do stuff */ }
Alors, est-ce que je passerais l'objet utilisateur dans l'objet projet? –
Indirectement, via son interface. Dans cette solution, vous ne pourrez pas contourner le fait que les projets et les utilisateurs sont au courant de cette interface, mais le projet n'a pas besoin de savoir s'il est en train de parler à un utilisateur, à TestHarness ou à – DanDan