Limite de taxa de mensagens pessoais também limita sinalizações de "Algo Mais"

Reproduzindo o problema

  1. Obtenha uma instância de teste para não quebrar uma comunidade existente.
  2. Defina mensagens pessoais máximas por dia = 1. (O padrão é 20. Não tenho certeza do que 0 significa para esta configuração, então estou usando a próxima melhor opção.)
  3. Finja ser um usuário não-staff. (Como administrador, não vi o problema. Suspeito que seja porque o staff não está sujeito a este limite de taxa, mas não olhei o código para ter certeza.)
  4. Envie uma mensagem privada de teste da conta que você está fingindo para outra pessoa. (Enviei para minha própria conta.)
  5. Marque um post aleatório com o motivo “Algo Mais”. (Pelo que pude apurar, outros motivos de marcação não exibem o problema.)

Você deve receber um pop-up dizendo:

Ocorreu um erro: Você atingiu o número máximo de mensagens permitidas por dia. Você poderá criar novas mensagens em 23 horas.

Por que isso importa

Existem várias configurações relevantes:

  1. Tópicos de MP por dia. (Padrão 20)
  2. Marcações por dia. (Padrão 20)
  3. Marcações por dia multiplicadas por nível de confiança. (TL2 => 1,5, TL3 => 2, TL4 => 3)

Como resultado, usuários TL3 podem iniciar até 20 tópicos de MP em um período de 24 horas e marcar até 40 posts. No entanto, marcações que usam o motivo “Algo Mais” contam tanto para o limite de tópicos de MP quanto para o limite de marcações. Como não há multiplicador de TL para o limite de MP, é impossível aumentar o limite de taxa apenas para usuários confiáveis.

Talvez mais importante, a mensagem não parece relacionada à ação que o usuário realizou. Não é óbvio que um motivo de marcação específico iniciaria um tópico de MP. Para ver essa confusão na vida real, veja estes tópicos:

  1. Mensagens máximas por dia?
  2. Atingi o máximo de mensagens… de novo

Após investigar hoje, agora posso sugerir não usar o motivo “Algo Mais” se você ficar sem tópicos de MP em um dia. Mas isso não é ideal porque desencorajará alguns usuários de adicionar contexto necessário às suas marcações. Provavelmente vou apenas aumentar o limite de taxa de tópicos de MP e esperar que ninguém descubra que pode começar a enviar spam para outros usuários.

Possíveis soluções

  1. Não conte tópicos de MP gerados pelo sistema contra um usuário. Assim, se eu marcar um post e o sistema o transformar em um tópico de MP com os moderadores, isso não deve contar contra o meu limite. Para marcações, apenas o limite de taxa de marcação deve ser aplicado.
  2. Corrija a mensagem para que os usuários possam diagnosticar o problema. Não tenho uma cópia concisa para sugerir, mas deve ficar claro que o problema é marcar com “Algo Mais” em vez de outros tipos de marcações. Eu deixaria de fora qualquer indicação de que isso está relacionado a tópicos de MP, a menos que seja cuidadosamente explicado. Está entrando muito nos detalhes do sistema para o público em geral.
  3. Adicione multiplicadores baseados em TL ao limite de taxa de tópicos de MP. Honestamente, acho que 20 é suficiente em todas as situações, exceto nas mais extremas. Mas se as marcações consumirem o limite, eu gostaria de dar aos usuários confiáveis pelo menos tantas iniciações de tópicos de MP quanto os usuários regulares.
7 curtidas

Oi @sam, você :heart: isso e já faz um mês (e finalmente consegui atualizar o site para 3.1.0.beta3). Eu só estava verificando para ver se a tão esperada atualização incluiria uma correção para isso, pensei ter visto um commit sobre isso, mas não vejo nada aqui.

Gosto da ideia de consertar isso, mas nada foi agendado ainda. Desacoplamento parece ser a solução certa.

2 curtidas

Olá,

Tenho uma correção para este bug. No entanto, gostaria de discutir minha solução antes de enviar o PR.
É bem simples, a nova mensagem privada é definida para pertencer ao usuário system e o usuário real é feito um destinatário dela em vez de iniciador.

Uma coisa que vale a pena mencionar: o usuário receberá sua própria mensagem do system em sua caixa de entrada.

Alguma opinião?

1 curtida

Esta seria uma melhoria fantástica para o Discourse em todos os aspectos. Mesmo com a configuração padrão de não permitir que TL0 envie PMs, permitir repentinamente que TL1 envie um monte de novos threads de PM diferentes é um ataque de spam de PM de baixo nível esperando para acontecer. Ou, o limite de taxa de PM pode ser definido para algo muito baixo, mas seria insustentável aplicar essa mesma taxa a usuários confiáveis >= TL2.