Projet

Général

Profil

Bug #667

Acces en lecture "propriétaire" ne doit pas empêcher les destinataires

Ajouté par Thomas Noël il y a plus de 12 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
01 septembre 2011
Echéance:
% réalisé:

90%

Temps estimé:
Patch proposed:
Planning:

Description

Sur les formulaires avec des droits en lecture sur "propriétaire", le destinataire n'a pas la garantie de l'accès en lecture... Ca ne semble pas très cohérent.

Et ça fait boguer les formulaires anonymes sur lesquels on veut que les utilisateurs logés puisse revoir leur envoi : on doit mettre le droit en lecture "propriétaire". Alors, les destinataires ne peuvent plus lire le formulaire s'il est dans un statut de workflow qui ne leur donne pas d'action (typiquement: le statut "terminé").

Pour résoudre ce bogue et rendre le système plus compréhensible, je propose que les destinataires puissent toujours lire les formulaires qu'ils ont en charge :

--- formdef.py.ACL    2011-09-01 19:43:00.311941428 +0200
+++ formdef.py    2011-09-01 21:17:05.231786342 +0200
@@ -630,32 +630,34 @@

         if user.roles:  # set(None) raise an exception for python>2.6
             user_roles = set(user.roles)
         else:
             user_roles = set([])
         user_roles.add(logged_users_role().id)

         if self.acl_read == 'roles':
             form_roles = (self.roles or [])
             if self.receiver:
                 form_roles.append(self.receiver.id)
             if user_roles.intersection(form_roles):
                 return True
         elif self.acl_read == 'owner':
             if formdata and formdata.user_id == user.id:
                 return True
+            if self.receiver and self.receiver.id in user.roles:
+                return True
         elif self.acl_read == 'none':
             # no special permission for anybody, but the form will be viewable
             # to users with a workflow action available.
             pass

Note: si l'accès en lecture est "aucun", ce patch garde le comportement basé sur les accès selon le workflow... quoique en fait, je trouve que les destinataires devraient toujours pouvoir voir les formulaires dont ils ont la charge, ça me semblerait plus simple à expliquer. Dans ce cas le patch sera plus simple.

Note 2: je me demande si on a un seul usecase pertinent pour "accès en lecture = roles"... qui me donne un exemple ?

Révisions associées

Révision 6f1181bb (diff)
Ajouté par Thomas Noël il y a plus de 12 ans

allow receiver to read a form when acl_read is "owner"

fix #667 https://dev.entrouvert.org/issues/667

Historique

#1

Mis à jour par Thomas Noël il y a plus de 12 ans

Mis en place sur vincennes.dev pour tests.

#2

Mis à jour par Frédéric Péters il y a plus de 12 ans

Je ne suis vraiment pas sûr de vouloir voir des changements à ce code sans que ne soit documenté l'utilité et l'effet précis des différentes options (et ce n'est pas à prendre tout sur tes épaules, Thomas).

Par exemple, en réponse à ta première note, je retrouve ce commit, pas si vieux, mais je suis malheureusement incapable de me souvenir de qui vient la demande, et pour répondre à quel cas de figure :

Author: fpeters
Date: 2010-04-03 12:07:13 +0000 (Sat, 03 Apr 2010)
New Revision: 1803

Modified:
   trunk/wcs/admin/forms.ptl
   trunk/wcs/formdef.py
   trunk/wcs/forms/root.ptl
Log:
Add the possibility to have submitted forms not visible even for owners

Pour la deuxième note, peut-être permettre aux personnes identifiées d'avoir un accès (en lecture) à tous les formulaires transmis ?

#3

Mis à jour par Thomas Noël il y a plus de 12 ans

Frédéric Péters a écrit :

Je ne suis vraiment pas sûr de vouloir voir des changements à ce code sans que ne soit documenté l'utilité et l'effet précis des différentes options (et ce n'est pas à prendre tout sur tes épaules, Thomas).

En fait, dans la doc http://wcs.labs.libre-entreprise.org/doc/fr/user-guide.html il est écrit : « Accès en lecture : définit qui sera autorisé à voir le formulaire complété par le répondant (en plus de la personne qui le reçoit et le traite) »

Donc mon patch permet de rendre la documentation correcte : il s'agit d'une autorisation ajoutée à celles par défaut ("qui reçoit et le traite" = destinataires + personnes-action dans le workflow).

Pour la deuxième note, peut-être permettre aux personnes identifiées d'avoir un accès (en lecture) à tous les formulaires transmis ?

Ok, c'est juste que c'est bien difficile à comprendre pour l'utilisateur (l'admin), même Victor a eu du mal à m'expliquer ;)

#4

Mis à jour par Thomas Noël il y a plus de 12 ans

A relire entièrement FormDef.is_user_allowed_read() : il y a sans doute des choses à reprendre pour rendre cette fonction un peu plus consistante, effectivement.

#5

Mis à jour par Thomas Noël il y a plus de 12 ans

En attendant de "rendre cette fonction un peu plus consistante", je peux pousser ma proposition de patch ?

#6

Mis à jour par Frédéric Péters il y a plus de 12 ans

Vraiment c'est débile d'avoir ajouté (c'est moi) ce libellé de "owner" alors que partout ailleurs on utilise soit sender soit receiver… Pour moi il y a encore l'occasion d'un ménage et d'une meilleure documentation ici, mais zou, patche.

#7

Mis à jour par Thomas Noël il y a plus de 12 ans

  • % réalisé changé de 0 à 90

Appliqué par commit r2185.

#8

Mis à jour par Thomas Noël il y a plus de 12 ans

  • Statut changé de Solution déployée à Fermé

Oui, il faudra faire le ménage un jour sur cette gestion de droit. En attendant...

#9

Mis à jour par Thomas Noël il y a plus de 12 ans

  • Statut changé de Fermé à Solution déployée
  • Version cible changé de Vincennes - v1 : compte citoyen et téléservices à Au-quotidien 2012.1

A passer en "fermé" quand ça sera déployé sur auquo

#10

Mis à jour par Thomas Noël il y a plus de 12 ans

  • Statut changé de Solution déployée à Résolu (à déployer)
#11

Mis à jour par Frédéric Péters il y a plus de 10 ans

  • Statut changé de Résolu (à déployer) à Fermé
#12

Mis à jour par Thomas Noël il y a plus de 8 ans

  • Version cible Au-quotidien 2012.1 supprimé

Formats disponibles : Atom PDF