“历史性地应用默认用户选项”是一条单行道

当默认用户选项从 false 设置为 true 时,其行为不符合预期。
它不会询问是否应将设置应用于现有用户,即使询问了,也无法正常工作。

重现步骤:

  • 有一个设置,例如“在新标签页中打开外部链接”已启用。
  • 将 admin - settings - user preferences - default other external links in new tab 设置为 enabled。
  • 将 admin - settings - user preferences - default other external links in new tab 设置为 disabled。
  • 出现一个弹出窗口:“您想将此更改应用到历史记录吗?这将更改 X 个现有用户的偏好设置。”并选择 Yes。
  • 对于所有用户,“在新标签页中打开外部链接”现在已禁用。

到目前为止一切正常,但是:

  • 将 admin - settings - user preferences - default other external links in new tab 设置为 enabled。
  • 没有弹出窗口,并且它仍然对每个人都禁用。

预期的最后一步:

  • 出现一个弹出窗口:“您想将此更改应用到历史记录吗?这将更改 X 个现有用户的偏好设置。”选择 Yes 将为所有人启用它。

这适用于所有 default_ 用户偏好设置。

这似乎与 此处此处 相关。

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

如果设置是 false,则将 previous_value 设置为 "",然后

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

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

什么都不做。

9 个赞

这是个PR:

4 个赞

此主题在最后回复后 3 天自动关闭。不再允许新回复。