Bug #7329
accès d'un usager muni du rôle du destinataire à un formulaire
Début:
21 mai 2015
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Description
Il y a plus de deux ans on vérifiait l'autorisation d'accès à un formulaire (pour le compléter) ainsi :
for q in (self.user and self.user.roles) or []: if q in self.formdef.roles or q == self.formdef.receiver_id: break else: raise errors.AccessForbiddenError()
C'est plutôt clair dans ce code que si l'usager était destinataire du rôle, il avait accès au formulaire.
Il y a deux ans, receiver_id a été généralisé dans workflow_roles, et le code est devenu :
other_roles = (self.formdef.roles or []) if self.formdef.workflow_roles: other_roles.extend(self.formdef.workflow_roles.keys()) if not user_roles.intersect(other_roles): raise errors.AccessForbiddenError()
Mais mais mais, workflow_roles, il est de la forme {'_receiver': 23}, c'est du coup 'receiver' qui se retrouve dans other_roles, et l'accès ne passera pas.
Fichiers
Révisions associées
tests: fix test of submitter access to form (#7329)
Historique
Mis à jour par Frédéric Péters il y a presque 9 ans
- Fichier 0001-forms-fix-receiver-access-to-form-submission-7329.patch 0001-forms-fix-receiver-access-to-form-submission-7329.patch ajouté
- Fichier 0002-tests-fix-test-of-submitter-access-to-form-7329.patch 0002-tests-fix-test-of-submitter-access-to-form-7329.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 9 ans
- Statut changé de En cours à Résolu (à déployer)
commit 9e94dbe7ac90860021b050ed6de37b4ee3bc0585 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu May 21 16:15:37 2015 +0200 tests: fix test of submitter access to form (#7329) commit 3baccb0b5d3e45466a644f50d020b0d497ec4090 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu May 21 16:15:14 2015 +0200 forms: fix receiver access to form submission (#7329)
forms: fix receiver access to form submission (#7329)