Bug #53883
Usage de l'option "Limiter aux données anonymisées" sur les accès API
0%
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 :- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/list
- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/121/ (Demande non anonymisée)
- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/71/ (Demande anonymisée)
- "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
- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/list : retourne les 43 demandes avec le même contenu, il me semble NOK car je m'attendais à avoir un contenu différent.
- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/121/ : visibilité complète de la demande, il me semble NOK car je m'attendais à avoir un contenu différent.
- https://demarches-mates.test.entrouvert.org/api/forms/inscription-aux-activites/71/ : visibilité de la demande anonymisée OK.
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 3 ans
- Fichier 0001-api-allow-mixing-anonymous-restriction-and-basic-aut.patch 0001-api-allow-mixing-anonymous-restriction-and-basic-aut.patch ajouté
- Tracker changé de Autre à Bug
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
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:
.
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)
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
api: allow mixing anonymous restriction and basic authentication (#53883)