Inviter à nouveau l'utilisateur supprimé

C’est probablement un cas limite, mais lors du test d’un point de terminaison API (/invites.json), tout fonctionne correctement. J’ai ensuite supprimé l’utilisateur invité et maintenant, je reçois une réponse 422 de ce point de terminaison. En utilisant l’explorateur de données, je peux voir que l’utilisateur n’existe plus, mais l’invitation figure toujours dans la table des invitations.

Est-il possible d’inviter un utilisateur avec une adresse e-mail qui a déjà été supprimée ?

4 « J'aime »

Bonjour, bienvenue ! Pour clarifier : l’utilisateur invité a-t-il accepté l’invitation ou créé son compte avant que vous ne le supprimiez ?

1 « J'aime »

Merci ! Oui, j’ai accepté l’invitation, puis j’ai supprimé le compte.

1 « J'aime »

D’accord, je n’ai pas réussi à reproduire le comportement que vous décrivez, sauf si je mal compris quelque chose de ce que vous espérez faire (ce qui est tout à fait possible). Cela pourrait aider si vous expliquez ce que vous attendiez de voir par rapport à ce que vous voyez réellement.

Mais j’utilise :

Version : 2.7.0beta7
Système d’exploitation : Ubuntu 20.04.1 LTS

& j’ai effectué les étapes suivantes :

  • Inviter un utilisateur avec une adresse e-mail spécifique depuis l’interface utilisateur, Admin > Utilisateurs > Envoyer des invitations
    • J’ai invité et sélectionné l’option pour restreindre l’invitation à une adresse e-mail spécifique
  • J’ai accepté l’invitation depuis l’adresse e-mail spécifiée dans une fenêtre de navigation privée séparée
  • En tant qu’administrateur dans ma fenêtre d’origine, j’ai supprimé l’utilisateur nouvellement inscrit
  • J’ai utilisé Postman pour envoyer une requête GET vers https://example.dev/u/my-dev-user/invited.json
    • Est-ce le point de terminaison que vous utilisiez ? Vous avez mentionné /invites.json, mais j’obtiens une erreur 404 avec celui-ci, peu importe. Je ne suis pas tout à fait sûr qu’il existe.
  • J’ai reçu la réponse suivante après avoir supprimé l’utilisateur, ce qui était attendu puisque j’ai supprimé l’utilisateur : aucun en attente, aucun échangé et aucun expiré :
{
    "invites": [],
    "can_see_invite_details": true,
    "counts": {
        "pending": 0,
        "expired": 0,
        "redeemed": 0,
        "total": 0
    }
}

Cela devrait être possible - je viens de réinviter la même adresse e-mail que j’ai supprimée ci-dessus sans aucun problème.

2 « J'aime »

Ah désolé, j’aurais dû préciser le point de terminaison. Discourse API Docs

Voici les étapes que j’ai suivies :

  • Inviter un utilisateur en utilisant le point de terminaison POST Discourse API Docs
  • Accepter l’invitation via l’e-mail
  • Se connecter en tant qu’administrateur et supprimer l’utilisateur
  • Tenter d’inviter à nouveau l’utilisateur via l’étape 1. Cette fois, je reçois une réponse 422 avec l’erreur : ```
    {
    “failed”: “FAILED”
    }
2 « J'aime »

Ah, et pour faire suite, l’invitation fonctionne via l’interface d’administration comme vous l’avez décrit, mais pas via le point de terminaison POST que j’utilise.

1 « J'aime »

Oooh, c’est clair maintenant - oui, je parviens à reproduire ce problème.

Je parviens à envoyer des invitations régulières à de nouvelles adresses e-mail via l’API avec une requête POST :
J’obtiens la réponse suivante comme prévu :

REQUÊTE : https://example.dev/invites.json?email=example%2Bsomething@hey.com
RÉPONSE RÉELLE

{
    "id": 7,
    "invite_key": "inviteKEY",
    "link": "https://example.dev/invites/inviteKEY",
    "email": "example+something@hey.com",
    "emailed": true,
    "custom_message": null,
    "created_at": "2021-04-26T23:57:08.602Z",
    "updated_at": "2021-04-26T23:57:08.602Z",
    "expires_at": "2021-05-26T23:57:08.594Z",
    "expired": false,
    "topics": [],
    "groups": []
}
  • ensuite, je me connecte ailleurs et j’accepte l’invitation pour cet utilisateur.
  • puis, je me reconnecte en tant qu’administrateur et je supprime l’utilisateur dont l’e-mail est : example+something@hey.com
  • ensuite, je renvoie la même requête POST à l’API pour inviter à nouveau cet utilisateur

REQUÊTE : https://example.dev/invites.json?email=example%2Bsomething@hey.com
RÉPONSE ATTENDUE

{
    "id": 8,
    "invite_key": "newinviteKEY",
    "link": "https://example.dev/invites/newinviteKEY",
    "email": "example+something@hey.com",
    "emailed": true,
    "custom_message": null,
    "created_at": "2021-04-26T23:59:08.602Z",
    "updated_at": "2021-04-26T23:59:08.602Z",
    "expires_at": "2021-05-26T23:59:08.594Z",
    "expired": false,
    "topics": [],
    "groups": []
}

RÉPONSE RÉELLE

{
    "failed": "FAILED"
}
3 « J'aime »

Ah, c’est bien, ce n’est pas seulement moi :slight_smile: Donc je suis nouveau dans ce domaine, est-ce que cela doit être signalé comme un bug maintenant ou y a-t-il un autre endroit où le poster, par exemple sur GitHub ?

1 « J'aime »

Cela devrait servir de rapport, si je comprends bien ! Entre nous, je pense que nous avons essentiellement respecté le standard d’un rapport de bug.

Ensuite, espérons qu’une personne capable de fournir une explication, une solution de contournement et/ou une correction nous indiquera quoi faire.

6 « J'aime »

@hcw-rohan @weallwegot Ce bug a été corrigé dans #12927.

Bonjour,

Je pense que la correction du bogue a peut-être été annulée ou ne fonctionne plus, car j’ai rencontré ce problème aujourd’hui. J’ai suivi les étapes ci-dessous pour identifier le problème.

  • Suppression d’un utilisateur dans le panneau d’administration
  • Invitation de l’utilisateur via l’API
  • Affichage du message d’échec

  • Suppression des invitations en attente pour l’utilisateur supprimé
  • Invitation de l’utilisateur supprimé via l’API
  • Affichage du message de succès
  • Réception de l’invitation, mais au clic, affichage de l’avertissement : « Désolé ! Cette invitation est destinée aux nouveaux utilisateurs qui n’ont pas déjà un compte existant. »
  • Ni l’API ni le panneau d’administration ne parviennent à trouver l’utilisateur supprimé
  • Enfin, j’ai essayé d’ouvrir le lien d’invitation dans une fenêtre de navigation privée, et j’ai pu me connecter en tant que nouvel utilisateur. Il pourrait s’agir d’un problème lié aux cookies ?

  • Tentative d’ajout d’un nouvel utilisateur via l’API
  • Affichage du message de succès

J’espère que cela vous sera utile.

Bonjour Greg,

J’ai essayé de reproduire le bug, mais de mon côté, réinviter un utilisateur supprimé a fonctionné. J’ai testé avec les invitations par e-mail et par lien.

Êtes-vous certain de ne pas être connecté lorsque vous avez accédé à la page d’invitation ? Il n’existe qu’un seul chemin de code qui affiche ce message, et je ne vois aucun problème évident.