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 abapara habilitado - Defina admin - configurações - preferências do usuário -
padrão outros links externos em nova abapara 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 abapara 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.