Project

General

Profile

Development #24411

API: dans /api/user/ servir la date de la connexion précédente à la connexion en cours

Added by Benjamin Dauvergne about 1 year ago. Updated 10 months ago.

Status:
Solution proposée
Priority:
Normal
Category:
-
Target version:
-
Start date:
10 Jun 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

Description

La donnée est conservée dans request.session[constants.LAST_LOGIN_SESSION_KEY] sous forme d'une chaîne formatée selon la locale courante, il faudrait simplement servir cela.

lastlogin_users_api.png View (52.4 KB) Paul Marillonnet, 08 Aug 2018 11:36 AM

0001-last-login-date-in-user-api-24411.patch View (2.1 KB) Paul Marillonnet, 30 Aug 2018 06:20 PM

27004

Related issues

Related to Authentic 2 - Development #25624: API: dans /api/users/xxxx/ servir la date de dernière connexion des usagers Nouveau 09 Aug 2018
Related to Authentic 2 - Development #23494: Écran reprenant les connexions d'un utilisateur Nouveau 29 Apr 2018

History

#1 Updated by Frédéric Péters about 1 year ago

Mais il me semble que cette API est juste ok pour l'utilisateur courant, et dans la pratique seulement utilisable en jsonp. J'aimerais avoir l'information dans /api/users/<xxx>/, ça serait notamment utile pour être repris sur la fiche usager sur le portail agent/guichet.

(bien sûr pas moyen de se baser sur la session, il faudrait sans doute tirer l'information du journal des actions de l'utilisateur (#20695?)).

#2 Updated by Benjamin Dauvergne about 1 year ago

J'ai deux approches, soit on conserve le fonctionnement actuel et donc c'est stocké en session et c'est accessible juste en JSONP et ça ne charge pas la base.

Soit on va directement vers une cellule mes dernières connexions à la Facebook/Google avec IP et geoloc, plate-forme, visible dans une page de profil et on affiche plus d'information dernière connexion qui n'est pas très utile en général. Je vois d'un mauvais oeuil un appel à a2 avec requêtage d'une table de log pour en obtenir l'avant dernière ligne à chaque requête vers combo.

Question subsidaire: est-ce qu'on a une cellule JSONP dans combo ? (j'ai l'impression que ça obligerait à avoir du templating Django coté navigateur, je sais que c'est inspiré de moustache mais je ne sais pas si existe un moteur moustache qui aurait une syntaxe quasi identique à celle de Django).

#3 Updated by Frédéric Péters about 1 year ago

Soit on va directement vers une cellule mes dernières connexions à la Facebook/Google avec IP et geoloc, plate-forme, visible dans une page de profil et on affiche plus d'information dernière connexion qui n'est pas très utile en général. Je vois d'un mauvais oeuil un appel à a2 avec requêtage d'une table de log pour en obtenir l'avant dernière ligne à chaque requête vers combo.

Je suis un peu perdu ici; en pratique aujourd'hui l'information est uniquement affichée dans le backoffice d'Authentic. Il y a de manière temporaire et pour montrer que c'était possible reprise de cette info (aujourd'hui incorrecte) sur la plateforme de démonstration mais personne n'a soulevé l'idée d'avoir ça repris sur toutes les pages. La seule vraie demande que je mentionne, c'est dans la perspective de l'affichage d'une fiche usager dans le portail agent/guichet, que l'info puisse être reprise. (mais ce n'est pas "à chaque requête vers combo").

est-ce qu'on a une cellule JSONP dans combo ?

Non.

#4 Updated by Benjamin Dauvergne about 1 year ago

Frédéric Péters a écrit :

Soit on va directement vers une cellule mes dernières connexions à la Facebook/Google avec IP et geoloc, plate-forme, visible dans une page de profil et on affiche plus d'information dernière connexion qui n'est pas très utile en général. Je vois d'un mauvais oeuil un appel à a2 avec requêtage d'une table de log pour en obtenir l'avant dernière ligne à chaque requête vers combo.

Je suis un peu perdu ici; en pratique aujourd'hui l'information est uniquement affichée dans le backoffice d'Authentic.

Pardon, je me suis référé à ton mail de dimanche 10 juin à 10:37:

Tu peux créer une cellule JSON et mettre comme URL
https://connexion-.../api/users/[user_nameid]/
(malheureusement le nom de domaine ne peut pas être tiré d'une
variable).

Et comme contenu {% load combo %}{{json.last_login|parse_datetime}}

Je viens de te mettre ça en bas de colonne latérale ici :
https://portail-citoyen-publik.entrouvert.com/manage/pages/1/

J'ai pris ce qui n'était qu'une démonstration pour un début d'usage.

Il y a de manière temporaire et pour montrer que c'était possible reprise de cette info (aujourd'hui incorrecte) sur la plateforme de démonstration mais personne n'a soulevé l'idée d'avoir ça repris sur toutes les pages. La seule vraie demande que je mentionne, c'est dans la perspective de l'affichage d'une fiche usager dans le portail agent/guichet, que l'info puisse être reprise. (mais ce n'est pas "à chaque requête vers combo").

Dans ce cas effectivement je pencherai plus pour ajouter à l'option "full" de l'API user ce qu'on peut avoir comme informations de connexions.

#5 Updated by Paul Marillonnet 11 months ago

  • Assignee set to Paul Marillonnet

On est d'accord qu'on parle bien de /api/users/1234/ et non pas (seulement) /api/user/ ?

#6 Updated by Paul Marillonnet 11 months ago

27004

Pour ce qui est de /api/users/xxxx/ il y a déjà quelque chose en place, non ?
(cf la capture, le champ last_login renvoyé dans le payload JSON).

#7 Updated by Frédéric Péters 11 months ago

Il me semble que le propos de Benjamin était que cette information last_login est en fait l'heure de la session actuelle, pas la précédente.

Mais surtout il me semble nécessaire de reprendre le besoin que j'exprime, qui ne correspond pas tellement à l'intitulé, qui demande peut-être qu'on rejette ce ticket pour en créer un autre.

J'écrivais donc :

(...) dans la perspective de l'affichage d'une fiche usager dans le portail agent/guichet, que l'info puisse être reprise.

Contexte, un agent va sur la fiche d'un usager affichée par combo (contexte nouveau portail agent/guichet) et de cette fiche il y a appel à /api/users/<uuid de l'utilisateur pas de l'agent actuellement connecté>/ pour communiquer à l'agent cette information. (et l'agent de dire "je ne vois pas de connexion à la plateforme hier, sans doute que vous avez créé votre demande sans être authentifié et c'est pour ça qu'elle n'apparait pas dans votre tableau de bord").

#8 Updated by Mikaël Ates 10 months ago

  • Related to Development #25624: API: dans /api/users/xxxx/ servir la date de dernière connexion des usagers added

#9 Updated by Mikaël Ates 10 months ago

Est-ce que cela aurait du sens d'au passage prévoir de servir via l'API l'historique des connexions de l'usager, voir l'historique de toutes les actions sur le comptes, relativement à https://dev.entrouvert.org/issues/23494#note-10.

#10 Updated by Mikaël Ates 10 months ago

#11 Updated by Paul Marillonnet 10 months ago

Et donc, comme on s'y attendait, il faut d'abord #24401.
Mais dans l'idée, je verrais bien ça.

Also available in: Atom PDF