URL: https://linuxfr.org/suivi/pouvoir-determiner-si-un-compte-a-eu-de-l-activite-recemment Title: Pouvoir déterminer si un compte a eu de l'activité récemment Authors: Adrien Dorsaz Date: 2023年02月17日T11:18:10+01:00 License: CC By-SA Tags: Score: 1 Pour le [projet de nettoyage](https://linuxfr.org/news/regles-de-perennite-des-comptes-linuxfr-org-et-donnees-a-caractere-personnel) des très vieux comptes, nous avons besoin d'un moyen fiable pour savoir si un compte est encore actif ou non. Une discussion a commencé sur la dépêche pour savoir comment déterminer ça et, finalement ce n'est pas si évident. Le système d'authentification utilisé est [devise 4.6.2](https://github.com/heartcombo/devise/tree/v4.6.2). Actuellement, nous les fonctionnalités suivantes sont [activées](https://github.com/linuxfrorg/linuxfr.org/blob/0ad6136599caaa55ba77eebebc69b94278128c6c/app/models/account.rb#L87): - `registerable`: permet de s'inscrire sur le site - `confirmable`: demande une confirmation par email pour créer un compte - `database_authenticatable`: stock en base le hash du mot de passe - `recoverable`: la fonctionnalité "mot de passes perdu" - `rememberable`: ajoute la fonctionnalité "se souvenir de moi" - `trackable`: ajoute quelques champs en base pour suivre l'état des connexions Le cookie par défaut d'authentification (sans cocher la case "se souvenir de moi") a une durée de validité liée à la `Session` du navigateur. Donc, si l'utilisateur active la fonctionnalité "Se souvenir de ma session / Réouvrir les onglets au démarrage" de Firefox (ou autres navigateurs), sa connexion sera active à vie et les modules `trackable` et `rememberable` sont à priori inutiles pour déterminer si l'utilisateur s'est connecté récemment. Il faudrait lire plus en détail ce que permet `devise`, le résumer ci-dessus est un rapide point de ce que j'ai constaté, je n'ai pas lu toute la documentation. Un autre point que l'on peut utiliser pour savoir si un compte a eu de l'activité récente serait les champs `updated_at` automatiques de Ruby On Rails sur les tables `account` et `user`. Le problème de ces champs, c'est que les actions de modérateurs sur les comptes peuvent aussi mettre à jour ces champs. En plus, ils demandent à l'utilisateur de modifier son profile / son compte pour les mettre à jour, ce n'est pas très naturel.