"Aplicando opções de usuário padrão historicamente" é uma rua de mão única

Quando uma opção de usuário padrão é definida de false para true, ela não se comporta como deveria.
Ela não pergunta se a configuração deve ser aplicada aos usuários existentes e, mesmo que o fizesse, isso não funcionaria.

Repro:

  • Tenha uma configuração como, por exemplo, “abrir links externos em nova aba” habilitada
  • Defina admin - configurações - preferências do usuário - padrão outros links externos em nova aba para habilitado
  • Defina admin - configurações - preferências do usuário - padrão outros links externos em nova aba para desabilitado
  • Obtenha um pop-up Gostaria de aplicar esta alteração historicamente? Isso mudará as preferências para X usuários existentes. e escolha Sim
  • Para todos os usuários, “abrir links externos em nova aba” agora está desabilitado

Até aqui tudo bem, mas:

  • Defina admin - configurações - preferências do usuário - padrão outros links externos em nova aba para habilitado
  • Não obtenha nenhum pop-up e ele ainda está desabilitado para todos.

Última etapa esperada:

  • Obtenha um pop-up Gostaria de aplicar esta alteração historicamente? Isso mudará as preferências para X usuários existentes. onde escolher Sim o habilitaria para todos

Isso se aplica a todas as preferências de usuário default_.

Isso parece estar relacionado a aqui e aqui

previous_value = SiteSetting.public_send(id) || "" if update_existing_users

que define previous_value para "" se a configuração for false, e então

UserOption.where(user_option => previous_value).update_all(attrs)

e

json[:user_count] = UserOption.where(user_option => previous_value).

não faz nada.

9 curtidas

Aqui está um PR:

4 curtidas

Este tópico foi fechado automaticamente 3 dias após a última resposta. Novas respostas não são mais permitidas.