"Standardmäßige Benutzeroptionen historisch anwenden" ist eine Einbahnstraße

Wenn eine Standardbenutzeroption von false auf true gesetzt wird, verhält sie sich nicht wie erwartet.
Es wird nicht gefragt, ob die Einstellung für bestehende Benutzer angewendet werden soll, und selbst wenn, würde das nicht funktionieren.

Reproduktion:

  • Haben Sie eine Einstellung wie z. B. “Externe Links in neuem Tab öffnen” aktiviert.
  • Setzen Sie Admin - Einstellungen - Benutzereinstellungen - Standardmäßig andere externe Links in neuem Tab öffnen auf aktiviert.
  • Setzen Sie Admin - Einstellungen - Benutzereinstellungen - Standardmäßig andere externe Links in neuem Tab öffnen auf deaktiviert.
  • Erhalten Sie ein Popup Möchten Sie diese Änderung historisch anwenden? Dies ändert die Einstellungen für X bestehende Benutzer. und wählen Sie Ja.
  • Für alle Benutzer ist “Externe Links in neuem Tab öffnen” jetzt deaktiviert.

Soweit so gut, aber:

  • Setzen Sie Admin - Einstellungen - Benutzereinstellungen - Standardmäßig andere externe Links in neuem Tab öffnen auf aktiviert.
  • Erhalten Sie kein Popup und es ist immer noch für alle deaktiviert.

Erwarteter letzter Schritt:

  • Erhalten Sie ein Popup Möchten Sie diese Änderung historisch anwenden? Dies ändert die Einstellungen für X bestehende Benutzer., bei dem die Auswahl von Ja es für alle aktivieren würde.

Dies gilt für alle default_ Benutzereinstellungen.

Dies scheint sich auf hier und hier zu beziehen.

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

was previous_value auf "" setzt, wenn die Einstellung false ist, und dann

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

und

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

tut nichts.

9 „Gefällt mir“

Hier ist ein PR:

4 „Gefällt mir“

Dieses Thema wurde 3 Tage nach der letzten Antwort automatisch geschlossen. Neue Antworten sind nicht mehr möglich.