Texto após + em um endereço de email sendo desconsiderado na verificação de unicidade

Passos para reproduzir

  1. Crie uma nova conta em https://community.drownedinsound.com.
  2. Use um e-mail do GMail com um caractere + no nome de usuário, por exemplo, jobloggs+discourse@gmail.com
  3. Saia da conta.
  4. Crie outra conta usando um e-mail do GMail com um texto diferente após o sinal +, por exemplo, jobloggs+discobot@gmail.com

Resultados Esperados
Seu e-mail recebe uma solicitação de cadastro de novo usuário.

Resultados Atuais
Você recebe um e-mail para jobloggs+discourse@gmail.com dizendo que esta “Conta já existe”.

Observações
Após o cadastro, o novo e-mail não é usado para notificar que a conta já existe. O Discourse não costumava se comportar dessa maneira, por exemplo, antes de 6 de janeiro, isso nunca aconteceu neste site. Houve pelo menos uma atualização do site desde então e, desde que aconteceu, este bug foi introduzido.

1 curtida

Isso pode estar relacionado ao erro HTTP/500 que obtemos em nosso Discourse ao usar sinais de mais (+) em endereços de e-mail, dependendo do status da configuração normalize_emails:

2 curtidas

Obrigado por isso, você está certo, foi a configuração normalize_emails que foi alterada durante a atualização, e houve um bug quando normalize_emails está ativado e você já possui contas de e-mail usando sinais de +.

1 curtida

Eu acho que essa configuração também é a causa do erro fatal 500 que nossos usuários estão recebendo ao tentar alterar seu endereço de e-mail para um com um sinal de + nele.

Talvez não deva ser habilitado se tais contas já existirem.