"Applicare le opzioni utente predefinite storicamente" è una strada a senso unico

Quando un’opzione utente predefinita viene impostata da false a true, non si comporta come dovrebbe.
Non chiede se l’impostazione debba essere applicata agli utenti esistenti e anche se lo facesse, non funzionerebbe.

Riproduzione:

  • Avere un’impostazione come, ad esempio, “apri collegamenti esterni in una nuova scheda” abilitata
  • Imposta admin - impostazioni - preferenze utente - apri altri collegamenti esterni in una nuova scheda predefinito su abilitato
  • Imposta admin - impostazioni - preferenze utente - apri altri collegamenti esterni in una nuova scheda predefinito su disabilitato
  • Ottieni un popup Vuoi applicare questa modifica storicamente? Questo cambierà le preferenze per X utenti esistenti. e scegli Sì
  • Per tutti gli utenti, “apri collegamenti esterni in una nuova scheda” è ora disabilitato

Fin qui tutto bene, ma:

  • Imposta admin - impostazioni - preferenze utente - apri altri collegamenti esterni in una nuova scheda predefinito su abilitato
  • Non ottieni alcun popup ed è ancora disabilitato per tutti.

Ultimo passaggio previsto:

  • Ottieni un popup Vuoi applicare questa modifica storicamente? Questo cambierà le preferenze per X utenti esistenti. dove la scelta di Sì lo abiliterebbe per tutti

Questo vale per tutte le preferenze utente default_.

Questo sembra essere correlato a qui e qui

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

che imposta previous_value a "" se l’impostazione è false, e poi

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

e

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

non fa nulla.

9 Mi Piace

Ecco una PR:

4 Mi Piace

Questo argomento è stato chiuso automaticamente 3 giorni dopo l’ultima risposta. Non sono più permesse nuove risposte.