Projet

Général

Profil

Bug #53883

Usage de l'option "Limiter aux données anonymisées" sur les accès API

Ajouté par Mikaël Ates il y a presque 3 ans. Mis à jour il y a presque 3 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Les appels sur /api/forms/<slug>/list et /api/forms/<slug>/<id>/ retourne le même contenu que l'accès API ait l'option "Limiter aux données anonymisées" ou non.

Tests sur : Comptes de tests : https://demarches-mates.test.entrouvert.org/backoffice/settings/api-access/ :
  • "test1" - Accès de test sans rôle et sans anonymisation.
  • "test2" - Accès de test avec rôle et sans anonymisation.
  • "test3" - Accès de test sans rôle et avec anonymisation.
  • "test4" - Accès de test avec rôle et avec anonymisation.

Le rôle donne accès en BO à ces données : https://demarches-mates.test.entrouvert.org/backoffice/management/inscription-aux-activites/

Tests avec ou sans full=on et filter-user-uuid.

"test1" et "test3" : {'err': 1, 'err_class': 'Access denied', 'err_desc': 'unsufficient roles'} OK

"test2" et "test4" :

Fichiers

Révisions associées

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

api: allow mixing anonymous restriction and basic authentication (#53883)

Historique

#1

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

  • Assigné à mis à Frédéric Péters
#2

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

La combinaison de ces nouvelles options n'était pas au point, surtout parce que tous les tests ne passent pas sur les différentes situations (authent http basic ou signature, accès anonymisant ou pas, etc.); c'est mieux couvert maintenant via,

+@pytest.mark.parametrize('http_basic_auth', [False, True])
+def test_api_access_restrict_to_anonymised_data(pub, local_user, http_basic_auth):
</pe>

qui assure que les mêmes tests sont joués par rapport à l'anonymisation en authentification signée et en authentification basique.

À côté de ça pour le code (check_access), le patch réduit les imbrications, ça fait je trouve quelque chose de plus simple à suivre.
#3

Mis à jour par Emmanuel Cazenave il y a presque 3 ans

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

Cosmétique de lisibilité, dans dans wcs/api.py, j'aurais déplacé api_user = get_user_from_api_query_string(api_name=api_name) juste avant if not api_user:.

#4

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

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

Poussé avec cette modification,

commit e8a234da113dff1c0e1022e46b3a1b1e51f725a9
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon May 10 13:47:51 2021 +0200

    api: allow mixing anonymous restriction and basic authentication (#53883)
#5

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