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

**URL:** <https://meta.discourse.org/t/applying-default-user-options-historically-is-a-one-way-street/224039>\
**Category:** Bug\
**Created:** [12 Abril , 2022 13:19 UTC](https://meta.discourse.org/t/applying-default-user-options-historically-is-a-one-way-street/224039 "2022-04-12T13:19:41Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)\
**Post date:** [12 Abril , 2022 13:19 UTC](https://meta.discourse.org/t/applying-default-user-options-historically-is-a-one-way-street/224039/1 "2022-04-12T13:19:41Z")

</div>

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](https://github.com/discourse/discourse/blob/main/app/controllers/admin/site_settings_controller.rb#L37) e [aqui](https://github.com/discourse/discourse/blob/main/app/controllers/admin/site_settings_controller.rb#L132)

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

```

que define previous\_value para `""` se a configuração for `false`, e então

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

```

e

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

```

não faz nada.

---

_[View the full topic](https://meta.discourse.org/t/applying-default-user-options-historically-is-a-one-way-street/224039)._
