On Tue, 25 Jan 2011 17:44:28 +0100 Jean Couteau <couteau@codelutin.com> wrote:
Bonjour à tous,
en testant des findBy avec la couche de sécurité, je me rends compte que si je n'ai pas le droit de lire un des résultats de ma recherche, une exception est levée. A mon avis, il faudrait préférer un comportement du type : retourner un élément null si on ne peut le lire, ou encore mieux, retourner que les éléments que je peux lire.
La levée d'exception me semble pertinente dans le cas d'un restore (une action utilisateur qui demande explicitement un id, mais dans le cas d'un findBy, je pense vraiment qu'on ne devrait avoir que les résultats qui nous intéressent/qu'on peut lire.
C'est exactement ce qui est fait ... sur le service, mais le Proxy, lui apres le find qui lui retourne des id que tu n'as pas le droit de lire, appel directement le restore, qui leve l'exception. Mais je ne sais pas qu'elle est la bonne solution: - le find sur le proxy ajoute tout seul les conditions sur WikittyAutorisation - le find sur le proxy filtre les id avant d'appeler le restore (besoin de faire un deuxieme appel au service, et peut-etre ajouter un methode) - le restore du service filtre les objets si on a pas le droit (me plait pas beaucoup) Peut-etre que le mieux (moins couteux) est d'ajouter la condition sur WikittyAutorisation, mais peut-on l'ecrire facilement ?
Dans tous les cas, si on conserve la levée d'exception, ça nous oblige a créer des requètes avec les WikittyAuthorisation. D'une, ça complexifie grandement des requêtes simples, et de deux ça me plait pas d'utiliser WikittyAuthorisation partout, si on pouvait limiter son utilisation aux besoins métier très spécifiques et autrement masquer ça dans le service de sécurité, ça serait bien mieux.
je suis d'accord ce n'est pas au dev de devoir complexifier son appli -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com