"تطبيق خيارات المستخدم الافتراضية تاريخيًا" هو طريق باتجاه واحد

عندما يتم تعيين خيار مستخدم افتراضي من false إلى true، فإنه لا يتصرف كما ينبغي.
لا يسأل عما إذا كان يجب تطبيق الإعداد على المستخدمين الحاليين وحتى لو فعل ذلك، فلن ينجح ذلك.

إعادة الإنتاج:

  • لديك إعداد مثل “فتح الروابط الخارجية في علامة تبويب جديدة” ممكّن
  • قم بتعيين المسؤول - الإعدادات - تفضيلات المستخدم - افتراضي الروابط الخارجية الأخرى في علامة تبويب جديدة إلى ممكّن
  • قم بتعيين المسؤول - الإعدادات - تفضيلات المستخدم - افتراضي الروابط الخارجية الأخرى في علامة تبويب جديدة إلى معطّل
  • احصل على نافذة منبثقة هل ترغب في تطبيق هذا التغيير تاريخيًا؟ سيؤدي هذا إلى تغيير تفضيلات X مستخدم حالي. واختر نعم
  • بالنسبة لجميع المستخدمين، تم تعطيل “فتح الروابط الخارجية في علامة تبويب جديدة” الآن

حتى الآن جيد، ولكن:

  • قم بتعيين المسؤول - الإعدادات - تفضيلات المستخدم - افتراضي الروابط الخارجية الأخرى في علامة تبويب جديدة إلى ممكّن
  • لا تحصل على نافذة منبثقة ولا يزال معطلاً للجميع.

الخطوة الأخيرة المتوقعة:

  • احصل على نافذة منبثقة هل ترغب في تطبيق هذا التغيير تاريخيًا؟ سيؤدي هذا إلى تغيير تفضيلات X مستخدم حالي. حيث سيؤدي اختيار نعم إلى تمكينه للجميع

هذا ينطبق على جميع تفضيلات المستخدم default_.

يبدو أن هذا يتعلق بـ هنا و هنا

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

الذي يعيّن previous_value إلى "" إذا كان الإعداد false، ثم

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

و

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

لا تفعل شيئًا.

9 إعجابات

إليك طلب سحب (PR):

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام من آخر رد. لم تعد الردود الجديدة مسموح بها.