Project

General

Profile

Development #65612

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

Added by Paul Marillonnet 8 months ago. Updated about 1 month ago.

Status:
Solution déployée
Priority:
Normal
Category:
-
Target version:
-
Start date:
23 May 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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é.


Files


Related issues

Related to Authentic 2 - Development #65574: déverrouiller les attributs quand on se délie de FranceConnectFermé23 May 2022

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

Actions

Associated revisions

Revision 9c340c8a (diff)
Added by Paul Marillonnet about 2 months ago

manage custom attribute's verification sources (#65612)

Revision 5cd75e69 (diff)
Added by Paul Marillonnet about 2 months ago

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

Revision 8f17030e (diff)
Added by Paul Marillonnet about 2 months ago

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

Revision bf85976e (diff)
Added by Paul Marillonnet about 2 months ago

translation update (#65612)

History

#1

Updated by Paul Marillonnet 8 months ago

  • Related to Development #65574: déverrouiller les attributs quand on se délie de FranceConnect added
#2

Updated by Thomas Noël 8 months ago

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

Updated by Paul Marillonnet 8 months ago

  • Status changed from Nouveau to En cours
  • Assignee set to 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

Updated by Paul Marillonnet 8 months ago

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

#5

Updated by Paul Marillonnet 8 months ago

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

Updated by Paul Marillonnet 8 months ago

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

Updated by Paul Marillonnet 8 months ago

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

#8

Updated by Paul Marillonnet 8 months ago

  • Related to Development #66053: csv_import: stocker une information de source de vérification des attributs de l’usager added
#9

Updated by Pierre Ducroquet 7 months ago

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

Updated by Paul Marillonnet 7 months ago

  • Status changed from Solution proposée to En cours

Ok oui, bout de code à revoir en effet.

#11

Updated by Paul Marillonnet about 2 months ago

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

Updated by Benjamin Dauvergne about 2 months ago

  • Status changed from Solution proposée to Solution validée
#13

Updated by Paul Marillonnet about 2 months ago

  • Status changed from Solution validée to 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

Updated by Transition automatique about 1 month ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF