Projet

Général

Profil

Development #55374

api, servir les fichiers d'une demande quand l'url est signée

Ajouté par Frédéric Péters il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
04 juillet 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Pour permettre à combo d'afficher/lier l'info d'un champ de fichier d'une fiche, mon idée est que combo serve une redirection signée vers l'url du fichier.

Basiquement,

     def download(self):
-        self.check_receiver()
+        if not is_url_signed():
+            self.check_receiver()
     ...

mais deux problèmes :

1/ Pour un champ fichier d'une fiche, l'URL retournée va être de ce type,

    "url": "https://.../backoffice/data/<slug>/<id card>/download?f=<id champ>",

et la traversée de l'URL va faire qu'il y aura d'abord vérif que le /backoffice/ est accessible, puis que sa section /data/ est accessible, etc. et je ne suis pas chaud à multiplier les bypass de vérification de permissions quand l'url est signée.

Pour répondre à ça, mon idée est de simplement servir les fichiers depuis une URL qui n'a pas ces vérifications, produire/servir

    "url": "https://.../api/cards/<slug>/<id card>/download?f=<id champ>",

2/ cette URL download?f=... elle est elle-même une redirection vers .../files/<component>/<filename>, c'est ainsi pour terminer l'url avec le nom de fichier pour un truc clean quand l'usager veut enregistrer le fichier.

Réponse ici que dans le cas d'un appel signé, on serve directement depuis la vue "download" le fichier, sans cette dernière redirection de confort.


Fichiers


Demandes liées

Lié à Combo - Development #51994: Afficher les fichiers dans la cellule Combo "Contenu d'une fiche"Fermé12 mars 2021

Actions
Lié à w.c.s. - Development #49521: Rendre publique l'url d'un document (Fiche)Fermé16 décembre 2020

Actions

Révisions associées

Révision d2496c39 (diff)
Ajouté par Frédéric Péters il y a presque 3 ans

misc: directly serve cards file fields when url is signed (#55374)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Lié à Development #51994: Afficher les fichiers dans la cellule Combo "Contenu d'une fiche" ajouté
#2

Mis à jour par Frédéric Péters il y a presque 3 ans

#3

Mis à jour par Frédéric Péters il y a presque 3 ans

#4

Mis à jour par Paul Marillonnet il y a presque 3 ans

Et ça ne va pas casser des trucs déjà en place ? (j’ai l’impression qu’avec ce patch on simplifie notamment en supprimant un niveau de redirection. Et donc est-ce qu’il n’y a pas déjà des endroits ici et là où, même en ayant fourni une url signée, on s’attend à être redirigé une fois de plus par rapport à ce qui se fera une fois ce patch passé).

#5

Mis à jour par Frédéric Péters il y a presque 3 ans

Et donc est-ce qu’il n’y a pas déjà des endroits ici et là où, même en ayant fourni une url signée,

Non il n'y a pas ça parce qu'aujourd'hui il n'y pas de possibilité de récupérer les fichiers en utilisant une url signée, c'est bloqué avant, c'est le changement plus haut :

     def download(self):
-        self.check_receiver()
+        if not is_url_signed():
+            self.check_receiver()
#6

Mis à jour par Paul Marillonnet il y a presque 3 ans

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

Ah oui, en relisant je m’étais imaginé que ça simplifiait grandement l’affaire (de quelque chose déjà possible en mode bidouille), alors que ce n’était pas possible du tout avant.
Merci la clarification, c’est ok pour moi.

#7

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit d2496c3973b1b277f1ae9001dda4e79fcb1a51bc
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun Jul 4 15:12:12 2021 +0200

    misc: directly serve cards file fields when url is signed (#55374)
#8

Mis à jour par Frédéric Péters il y a presque 3 ans

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

Formats disponibles : Atom PDF