Projet

Général

Profil

Bug #37107

Brouillon inacessible sur un formulaire avec code de suivi désactivé

Ajouté par Benjamin Dauvergne il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
21 octobre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Quand on accède à un brouillon depuis le portail usager pour un formulaire avec code suivi désactivé, l'authentification n'est pas provoqué, même en ajoutant /tryauth ou /auth en fin d'URL.

Ça vient de ce code :

    def _q_lookup(self, component):
        try:
            filled = self.formdef.data_class().get(component)
        except KeyError:
            raise errors.TraversalError()

        if not filled.is_draft():
            if get_request().is_in_backoffice():
                get_session().message = ('error', _('This form has already been submitted.'))
                return redirect(get_publisher().get_backoffice_url() + '/submission/')
            return PublicFormStatusPage(self.formdef, filled)

        session = get_session()
        if not (get_request().is_in_backoffice() or
                self.has_draft_support() or <-- ICI
                session.is_anonymous_submitter(filled)):
            # don't allow restoring drafts if drafts are no longer enabled for
            # this form.
            raise errors.AccessForbiddenError()

dans le code de has_draft_support() on a :

    def has_draft_support(self):
        if self.edit_mode:
            return False
        if self.formdef.enable_tracking_codes: <- ICI
            return True
        session = get_session()
        return session.has_user() <- et Là

Et donc en en fait l'utilisation des brouillons dépend de l'activation des codes de suivi pour avoir l'authentification automatique qui fonctionne.

Il faudrait que sur le cas d'un brouillon avec un utilisateur attaché on fasse automatiquement un tryauth plutôt que de retourner tout de suite AcessForbiddenError.


Fichiers

Révisions associées

Révision 497d8d83 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

misc: always allow restoring drafts (#37107)

Historique

#2

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

            # don't allow restoring drafts if drafts are no longer enabled for
            # this form.

En fait simplement virer cette partie, qui n'a plus de sens vu que les brouillons sont désormais toujours activés.

#5

Mis à jour par Benjamin Dauvergne il y a plus de 4 ans

  • Statut changé de Solution proposée à Solution validée
#6

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 497d8d83d239fd60726f0273aebfd627a809943b
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Oct 21 22:26:44 2019 +0200

    misc: always allow restoring drafts (#37107)
#7

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

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

Formats disponibles : Atom PDF