Projet

Général

Profil

Development #65612

stocker l’origine (ou les multiples origines) ayant mené à la vérification d’un attribut donné pour un usager

Ajouté par Paul Marillonnet il y a presque 2 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
23 mai 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

L’idée étant que lorsque la source de vérification n’est plus pertinente (notamment lorsque l’usager demande la dé-liaison avec la source), cette information puisse être répercutée dans l’état de vérification des attributs de l’usager. Si, pour un attribut vérifié de l’usager, toutes les origines de vérification ont été retirées, alors l’attribut redevient non vérifié.


Fichiers


Demandes liées

Lié à Authentic 2 - Development #65574: déverrouiller les attributs quand on se délie de FranceConnectFermé23 mai 2022

Actions
Lié à Authentic 2 - Development #66053: csv_import: stocker une information de source de vérification des attributs de l’usagerEn cours08 juin 2022

Actions

Révisions associées

Révision 9c340c8a (diff)
Ajouté par Paul Marillonnet il y a plus d'un an

manage custom attribute's verification sources (#65612)

Révision 5cd75e69 (diff)
Ajouté par Paul Marillonnet il y a plus d'un an

auth_fc: set fc as verification source for custom attributes (#65612)

Révision 8f17030e (diff)
Ajouté par Paul Marillonnet il y a plus d'un an

api_views: set api as verification source for custom attributes (#65612)

Révision bf85976e (diff)
Ajouté par Paul Marillonnet il y a plus d'un an

translation update (#65612)

Historique

#1

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

  • Lié à Development #65574: déverrouiller les attributs quand on se délie de FranceConnect ajouté
#2

Mis à jour par Thomas Noël il y a presque 2 ans

Note au passage, si possible horodater l'affaire, typiquement retenir la date de la dernière validation, éventuellement la date de la dernière. Dans l'idée que ça pourra être utile un jour de voir qu'une validation date de plus de 2 ans.

#3

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

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Paul Marillonnet

Thomas Noël a écrit :

Note au passage, si possible horodater l'affaire, typiquement retenir la date de la dernière validation, éventuellement la date de la dernière. Dans l'idée que ça pourra être utile un jour de voir qu'une validation date de plus de 2 ans.

Ah oui ok j’avais pas prévu ça, les cartes sont rebattues :)
Suggestion retenue, je corrige dans la branche.

#4

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

Et commencé à travailler dans la branches les parties respectives pour auth_fc et api_views (auth_oidc et auth_saml à venir).

#5

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

Je lâche un peu pour l’instant, une régression me donne du fil à retordre : le sérialiseur de l’api /users/ ne gère plus les attributs étendus booléens, pour un patche qui n’a en apparence rien à voir. Je n’arrive pas à trouver l’origine de cette régression malgré des breakpoints posés dans tous les coins, je reprendrai à tête reposée.

#6

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

Voilà la gestion du stockage des sources de vérification, avec son application dans le backend fc et dans notre implémentation du client oidc.
Un user.refresh_from_db() nécéssaire dans 0003, sinon je n’accède pas aux versions à jour de user.attributes et user.verified_attributes, bien étrange.

Il y a sans doute d’autres endroits dans le code où ça pourrait s’appliquer (auth_saml, import csv), je regarde et fais des tickets à part au besoin.

#7

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

(pylint pas content dans le dernier build Jenkins au moment où j’écris ces lignes. Trois fois rien, corrigé dans la branche.)

#8

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

  • Lié à Development #66053: csv_import: stocker une information de source de vérification des attributs de l’usager ajouté
#9

Mis à jour par Pierre Ducroquet il y a presque 2 ans

Globalement pas grand chose à signaler, juste une interrogation sur ce bloc:

        with transaction.atomic():
            try:
                av = AttributeValue.objects.with_owner(owner).get(attribute=attribute, content=value)
            except AttributeValue.DoesNotExist:
                # caller should have checked that the attribute value is defined, silently failing
                # to add source.
                pass
            else:
                sources = av.verification_sources or []
                if source not in sources:
                    sources.append(source)
                    av.verification_sources = sources
                    av.last_verified_on = timezone.now()
                    av.save()

J'ai du mal à voir l'intérêt du transaction.atomic() ici. Le select est fait sans modificateur de verrouillage, du coup il n'y aura pas grand chose d'atomique. Rien n'interdit à un autre utilisateur de la DB de supprimer l'enregistrement par exemple entre le .get() et le .save(). Soit l'atomic() ne sert pas, soit le get() est incomplet.

#10

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

  • Statut changé de Solution proposée à En cours

Ok oui, bout de code à revoir en effet.

#11

Mis à jour par Paul Marillonnet il y a plus d'un an

J’avais complètement oublié que j’avais entamé ce travail dans a2, et c’est une remarque sur les tickets a2 validés et pas poussés (en l’occurrence #66054 qui se base sur celui-ci) qui m’a rafraîchi la mémoire. C’est rebasé, et la remarque sur le modificateur faite par Pierre est prise en compte, dans 0001.

#12

Mis à jour par Benjamin Dauvergne il y a plus d'un an

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

Mis à jour par Paul Marillonnet il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit bf85976e04774ea230980c9dd4f419eca04e47e2
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Mon Dec 12 09:28:43 2022 +0100

    translation update (#65612)

commit 8f17030eab049cdeb0dfed896ec9f0381fd01cdc
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Wed Jun 8 10:29:21 2022 +0200

    api_views: set api as verification source for custom attributes (#65612)

commit 5cd75e69e56319734ee146663a32c3fc32eb5948
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Mon May 30 14:39:20 2022 +0200

    auth_fc: set fc as verification source for custom attributes (#65612)

commit 9c340c8a5fe3c5af926805cbfd651137c668a960
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Tue May 24 11:58:10 2022 +0200

    manage custom attribute's verification sources (#65612)
#14

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF