아마도 엣지 케이스인 것 같습니다. API 엔드포인트(/invites.json)를 테스트했을 때 모든 것이 정상적으로 작동했습니다. 그런데 초대된 사용자를 삭제한 후 해당 엔드포인트에서 422 응답을 받게 되었습니다. 데이터 탐색기를 통해 사용자가 더 이상 존재하지 않음을 확인할 수 있지만, 초대 테이블에는 여전히 해당 초대가 나열되어 있습니다.
이전에 삭제된 이메일 주소로 사용자를 초대할 수 있을까요?
아마도 엣지 케이스인 것 같습니다. API 엔드포인트(/invites.json)를 테스트했을 때 모든 것이 정상적으로 작동했습니다. 그런데 초대된 사용자를 삭제한 후 해당 엔드포인트에서 422 응답을 받게 되었습니다. 데이터 탐색기를 통해 사용자가 더 이상 존재하지 않음을 확인할 수 있지만, 초대 테이블에는 여전히 해당 초대가 나열되어 있습니다.
이전에 삭제된 이메일 주소로 사용자를 초대할 수 있을까요?
안녕하세요, 환영합니다! 확인을 위해 여쭤보겠습니다 - 삭제하시기 전에 초대된 사용자가 초대를 수락했거나 계정을 생성했었나요?
감사합니다! 네, 초대장을 수락한 후 계정을 삭제했습니다.
음, 설명하신 방식으로 재현해 보았지만, 제가 뭔가 오해하고 있는 것 같네요 (전혀 불가능한 일은 아니지만요). 기대했던 결과와 실제로 보이는 결과를 설명해 주시면 도움이 될 것 같습니다.
저는 다음 환경을 사용했습니다:
버전: 2.7.0beta7
OS: Ubuntu 20.04.1 LTS
그리고 다음과 같이 진행했습니다:
https://example.dev/u/my-dev-user/invited.json으로 GET 요청을 보냈습니다.
/invites.json이라고 언급하셨지만, 저는 그 주소를 사용해도 404 에러가 발생하여 해당 엔드포인트가 존재하는지 확신이 서지 않습니다.{
"invites": [],
"can_see_invite_details": true,
"counts": {
"pending": 0,
"expired": 0,
"redeemed": 0,
"total": 0
}
}
가능해야 합니다. 위에서 삭제했던 동일한 이메일로 다시 초대를 보내어 아무 문제 없이 성공했습니다.
아, 죄송합니다. 엔드포인트를 명시해야 했네요. Discourse API Docs
제가 수행한 단계는 다음과 같습니다:
아, 그리고 추가로 말씀드리면, 관리 인터페이스에서는 말씀하신 대로 초대 기능이 정상적으로 작동하지만, 제가 사용하는 POST 엔드포인트에서는 작동하지 않습니다.
아, 이제 명확해졌어요 - 네, 이제 재현할 수 있습니다.
API에서 POST 요청을 사용하여 완전히 새로운 이메일 주소로 일반 초대장을 보낼 수 있습니다:
기대했던 대로 다음과 같은 응답을 받습니다:
요청: https://example.dev/invites.json?email=example%2Bsomething@hey.com
실제 응답
{
"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": []
}
요청: https://example.dev/invites.json?email=example%2Bsomething@hey.com
기대된 응답
{
"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": []
}
실제 응답
{
"failed": "FAILED"
}
아, 다행히 나만 그런 게 아니었군요
여기는 처음인데, 이건 이제 버그로 보고되는 건가요, 아니면 GitHub 같은 다른 곳에 올려야 하나요?
제가 이해한 바로는, 이 내용이 보고서를 대체해야 합니다! 우리 둘이서 버그 보고서의 표준을 거의 충족했을 것 같습니다.
& 그리고 hopefully 설명, 우회 방법, 또는 수정 방법을 제공할 수 있는 누군가가 우리에게 어떻게 해야 하는지 알려주기를 바랍니다.
@hcw-rohan @weallwegot 이 버그는 #12927에서 수정되었습니다.
안녕하세요,
버그 수정이 되돌려졌거나 더 이상 작동하지 않는 것 같습니다. 오늘 이 버그를 다시 경험했기 때문입니다. 아래 단계를 따라 문제를 확인했습니다.
삭제된 사용자의 대기 중인 초대를 삭제했습니다.
API를 통해 삭제된 사용자를 초대했습니다.
성공 메시지가 표시되었습니다.
초대를 받았지만 클릭했을 때 "죄송합니다! 이 초대는 기존 계정이 없는 신규 사용자를 위한 것입니다."라는 경고가 나타났습니다.
API나 관리자 패널 어디에서도 삭제된 사용자를 찾을 수 없습니다.
마지막으로, 시크릿 창에서 초대 링크를 열려고 했더니 신규 사용자로 로그인할 수 있었습니다. 쿠키 관련 문제일까요?
API를 통해 새 사용자를 추가하려고 했습니다.
성공 메시지가 표시되었습니다.
도움이 되길 바랍니다.
Greg님,
버그를 재현해 보려고 했으나, 제 환경에서는 삭제된 사용자를 다시 초대하는 방식으로 문제가 해결되었습니다. 이메일 초대와 링크 초대 두 가지 방식을 모두 시도해 보았습니다.
초대 페이지에 접근할 때 로그인되어 있지 않았는지 확인해 주시겠습니까? 이 메시지가 표시되는 코드 경로는 하나뿐이며, 제가 볼 때 명백한 문제는 발견되지 않습니다.