From 73a486451f9b23af0baf9f50bcb578739fb99389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Vergez?= Date: Mon, 23 Dec 2024 11:55:09 +0100 Subject: [PATCH] fix: ajout de logs plus fins pour les connexions directes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajouter une action dans le corps du log permettra de contruire un tableau de suivi plus facilement (les actions relatives à la connexion directe sont catégorisées). --- back/dora/auth_links/enums.py | 11 +++++++++++ back/dora/auth_links/views.py | 8 +++++++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 back/dora/auth_links/enums.py diff --git a/back/dora/auth_links/enums.py b/back/dora/auth_links/enums.py new file mode 100644 index 00000000..53df7c6b --- /dev/null +++ b/back/dora/auth_links/enums.py @@ -0,0 +1,11 @@ +import enum + + +class AuthLinkAction(enum.StrEnum): + """ + Actions loggées pour les liens d'identifications. + """ + + SENT_AUTH_LINK = "sent_auth_link" + DID_AUTHENTICATE_WITH_AUTH_LINK = "did_authenticate_with_auth_link" + USED_EXPIRED_AUTH_LINK = "used_expired_auth_link" diff --git a/back/dora/auth_links/views.py b/back/dora/auth_links/views.py index 6f3de90e..722e74f4 100644 --- a/back/dora/auth_links/views.py +++ b/back/dora/auth_links/views.py @@ -10,6 +10,7 @@ from sesame.utils import get_token, get_user from dora.auth_links.emails import send_authentication_link +from dora.auth_links.enums import AuthLinkAction from dora.users.models import User logger = logging.getLogger("dora.logs.core") @@ -38,6 +39,7 @@ def send_link(request): "Demande de connexion par lien direct", { "legal": True, + "action": AuthLinkAction.SENT_AUTH_LINK, "userId": user.pk, "userEmail": user.email, }, @@ -53,6 +55,7 @@ def authenticate_with_link(request, sesame): "Connexion par lien direct", { "legal": True, + "action": AuthLinkAction.DID_AUTHENTICATE_WITH_AUTH_LINK, "userId": user.pk, "userEmail": user.email, }, @@ -68,7 +71,10 @@ def authenticate_with_link(request, sesame): logger.warning( "Lien direct invalide ou expiré", - {"sesameLink": f"...{sesame[:-5]}"}, + { + "action": AuthLinkAction.USED_EXPIRED_AUTH_LINK, + "sesameLink": f"...{sesame[:-5]}", + }, ) # le lien est invalide ou expiré :