L’un de nos utilisateurs possède deux comptes Discourse : l’un n’est plus utilisé et l’autre, nouveau, ne permet pas de se connecter. La raison semble être que son nouveau compte chez notre fournisseur CAS SSO utilise la même adresse e-mail que son ancien compte sur notre forum.
J’ai fait des tests avec mon propre compte de test en essayant de le désactiver et de supprimer l’enregistrement SSO. Cependant, cela semble empêcher les nouvelles connexions pour ce compte, car l’enregistrement existant ne correspond plus au charge utile SSO, et l’adresse e-mail est désormais considérée comme conflictuelle.
J’ai également tenté de modifier l’adresse e-mail du compte Discourse inutilisé de notre utilisateur afin qu’il puisse se connecter avec cette adresse sur son nouveau compte. Une confirmation par e-mail est toutefois requise. J’ai configuré un alias e-mail sur notre serveur SMTP pour intercepter n’importe quelle adresse. Cependant, en suivant le lien, je dois me connecter en tant que cet utilisateur via SSO. Le problème est que je devrais alors réactiver le compte de l’utilisateur, définir un nouveau mot de passe, lier son compte à notre base de données des membres et créer un faux membre chez notre fournisseur SSO. Bien que cela soit possible, j’ai l’impression de m’embourber dans un enchevêtrement pour corriger le compte de cet utilisateur.
Accéder directement à la base de données et effectuer la modification via des requêtes SQL est une méthode que j’ai déjà utilisée par le passé, mais elle comporte des risques et je préfère l’éviter si possible.
Si cela ne casse pas Discourse, j’aimerais beaucoup disposer d’une fonctionnalité permettant de supprimer une adresse e-mail sur un compte désactivé, plutôt que de simplement la marquer comme non confirmée.
Si vous connaissez d’autres solutions pour résoudre ce problème, je vous remercie de me les indiquer. Merci !
Je pense que vous utilisez l’implémentation de SSO de Discourse et que vous définissez le paramètre SSO require_activation sur true dans la charge utile SSO. Si c’est le cas, consultez ce sujet pour obtenir des détails sur la résolution du problème : Debug and fixing common DiscourseConnect issues. Il est plus sûr d’exécuter les commandes de la console Rails indiquées dans ce sujet que de mettre à jour directement votre base de données avec des requêtes SQL.
La fusion des deux comptes, comme indiqué dans le message ci-dessus, est probablement une bonne approche, mais vous devrez peut-être apporter quelques ajustements au registre SSO après l’avoir fait.
Il y a aussi cela que je viens de trouver via la recherche fusionner les comptes d'utilisateurs. Cela est toujours disponible en cliquant sur l’utilisateur dans la liste des utilisateurs actifs (Tableau de bord d’administration) et en faisant défiler vers le bas pour voir les 3 boutons indiqués ci-dessous.
Début 2018, nous avons ajouté la prise en charge de la fusion de deux comptes d’utilisateurs. Pour ce faire, un accès SSH au serveur était nécessaire, car la fonctionnalité de fusion a été ajoutée sous forme de tâche rake.
Désormais, n’importe quel administrateur peut fusionner des utilisateurs ! Rendez-vous sur la page d’administration des utilisateurs et sélectionnez « Transférer et supprimer » en bas de la page.
Saisissez le nom d’utilisateur dans lequel vous souhaitez fusionner le compte, puis cliquez sur « Transférer et supprimer @nomdutilisateur » pour lancer le processus de fusion.
Merci pour les conseils et l’aide à ce sujet. Je vais essayer sur quelques comptes de test la semaine prochaine, et je vous tiendrai informé si je rencontre d’importants problèmes. Merci : )
D’accord, tout s’est donc bien passé. Lorsque j’ai fusionné les comptes, Discourse a conservé les identifiants SSO du compte cible / fusionné / non supprimé, et l’autre compte a été supprimé.