Usuários desativados às vezes não estão sendo desativados

Não encontrei uma forma de reproduzir este problema, mas no último mês notei duas instâncias em que um usuário foi supostamente desativado (conforme visto nos logs de ação da equipe), mas não foi realmente desativado (o usuário ainda conseguia fazer login).

Por exemplo, este foi “desativado” há 29 dias, mas conseguiu me enviar uma mensagem privada hoje (as únicas outras ações da equipe após a desativação são “verificar e-mail”)

Este é o outro (um membro diferente da equipe conseguiu “desativar” o mesmo usuário novamente 4 horas depois sem uma reativação anterior):

Estou na versão 2.9.0.beta9

Este problema ainda está em andamento (acontece várias vezes por mês). Mais alguém notou isso?

Este é o código do controlador

O StaffActionLogger está funcionando corretamente, mas estou me perguntando se algo no método User.deactivate pode estar falhando.

O que os erros têm em comum é que eles vêm de requisições da API. É o que eu normalmente uso:

PUT https://<MY_SITE>/admin/users/<USER_ID>/deactivate

Api-Username:<ADMIN_USER>
Api-Key:<KEY>

data: {"context":"/admin/users/<USER_ID>/<USER_NAME>"}

Eu sempre recebo “success: OK”

Existe algum outro log que eu possa verificar ou algo que eu possa tentar?

Estou na versão 2.9.0.beta11

Isso ainda está acontecendo esporadicamente. Por exemplo, este usuário foi inicialmente “desativado” em 23 de agosto, mas só percebi agora que ele ainda estava ativo e realmente o desativei.

Como um usuário pode ser desativado duas vezes (sem reativação entre elas)?

Tenho uma tarefa diária que executa uma consulta para verificar essa situação. Ela não retornou nada ontem e apenas este usuário hoje, então o que parece estar acontecendo é que o usuário foi corretamente desativado em 23 de agosto, mas de alguma forma foi ativado ontem (sem que isso fosse registrado em lugar nenhum).

É possível ativar um usuário (via API ou UI) e não deixar rastros? Presumo que isso só poderia acontecer modificando o banco de dados diretamente, o que tenho certeza que não fiz (sou o único administrador).

Isso pode acontecer. Tudo o que um usuário desativado precisa fazer para reativar sua conta é tentar fazer login no site e, em seguida, clicar no link no e-mail de ativação que é enviado a ele.

Quando um usuário desativado tenta fazer login, ele verá esta janela modal:

O Discourse enviará a ele um e-mail de “Confirme sua nova conta”:

Após clicar no link no e-mail, o usuário fará login no Discourse.

Este tem sido o comportamento desde que me lembro. Não acho que seja um bug, mas posso estar errado. Enviar um e-mail de “Confirme sua nova conta” para um usuário que já tem uma conta parece um pouco estranho.

Editar: para obter o comportamento que você procura, provavelmente você vai querer “suspender” o usuário em vez de desativá-lo.

4 curtidas

Mistério resolvido! Obrigado, Simon. Pode fechar este tópico.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.