Compte WordPress complètement supprimé lors de la modification du nom d'utilisateur dans Discourse (SSO avec WP comme fournisseur)

Suite à la discussion de SSO avec WordPress mais les utilisateurs ne peuvent pas modifier leur nom d’utilisateur :

J’utilise le plugin Discourse pour WordPress avec WordPress comme fournisseur d’authentification unique (SSO).

Lorsqu’une personne crée son compte sur WordPress, j’ai configuré le système pour que la création du compte passe par WooCommerce. J’ai également mis en place une règle qui empêche la connexion tant que l’utilisateur n’a pas confirmé son compte WordPress via vérification par e-mail.

Lorsqu’un utilisateur visite ensuite les forums, il doit cliquer sur le bouton « Connexion ». Si l’utilisateur a vérifié son compte et est connecté, il sera alors authentifié auprès de Discourse et son compte forum sera provisionné.

J’avais autorisé les utilisateurs à modifier leur nom d’utilisateur dans Discourse.

Quelles sont les conséquences de la modification du nom d’utilisateur d’un utilisateur ?

Eh bien, j’ai remarqué que ce qui se passe dans WordPress, c’est que leur compte est SUPPRIMÉ/EFFACÉ de ma base de données WooCommerce/WordPress. Il n’est plus nulle part.

Ensuite, lorsque l’utilisateur tente de se reconnecter, il ne peut pas… bien sûr, car il n’a plus de compte sur WordPress. Est-ce normal ? Quelqu’un d’autre a-t-il déjà rencontré ce problème ?!

J’ai depuis modifié la « période de modification du nom d’utilisateur » à « 0 ».

« Le nombre maximal de jours après l’inscription pendant lesquels les comptes peuvent modifier leur nom d’utilisateur (0 pour interdire la modification du nom d’utilisateur). »

Si quelqu’un souhaite modifier son nom d’utilisateur, il peut nous contacter et nous pouvons le modifier dans WordPress afin qu’il corresponde dans les forums. Cela semble fonctionner. (en utilisant le plugin « Username Changer » que @AdamCapriola a suggéré ici.)

Les seules modifications que le plugin WP Discourse apporte à un utilisateur WordPress lorsque WordPress sert de fournisseur SSO pour Discourse consistent à ajouter les champs de métadonnées discourse_sso_user_id et discourse_username à l’utilisateur. À ma connaissance, le plugin ne fait rien qui puisse entraîner la suppression d’un utilisateur WordPress de la base de données lorsqu’il modifie son nom d’utilisateur sur Discourse.

La seule conséquence que je connaisse d’un utilisateur changeant son nom d’utilisateur sur Discourse est que le nom d’utilisateur Discourse stocké dans WordPress peut se désynchroniser par rapport au vrai nom d’utilisateur Discourse de l’utilisateur. Si cela se produisait, cela affecterait la capacité de l’utilisateur à publier des messages sur Discourse. Cela ne devrait en aucun cas poser problème pour la connexion SSO. Cela ne devrait absolument pas entraîner la suppression de l’utilisateur de la base de données WordPress.

Il s’agit d’un problème lié à WordPress, et non à Discourse, mais je ne recommanderais pas d’utiliser un plugin pour outrepasser les fonctionnalités de base de WordPress. Les noms d’utilisateur ne sont pas conçus pour être modifiables dans WordPress. Il serait préférable de respecter ce comportement par défaut.