يظل شارة المستخدم بعد إزالة المستخدم من المجموعة

إذا قمت بإزالة مستخدم من مجموعة، فهل يتوقع أن يُزال شعار (flair) تلك المجموعة من صورة المستخدم فورًا؟

لقد قمت للتو بإزالة مستخدم من مجموعة.
لا يوجد أي مجموعة رئيسية محددة لها.
image

في تفضيلاتها، لم يتم تحديد أي شعار لها.

لقد قمت بتحديث متصفحي وسجّلت الخروج ثم الدخول مرة أخرى.

هل يجب عليها تسجيل الخروج ثم الدخول مرة أخرى قبل إزالة الشعار؟ هل فاتني أي خطوة في مكان ما؟

6 إعجابات

يُعرض معظم الوظائف في forum.example.com/sidekiq/scheduler. على سبيل المثال، إذا قمت بتعديل استعلام الشارة، يمكنك الانتظار يومًا حتى يتم تنفيذ وظيفة BadgeGrant، أو يمكنك تسريعها عن طريق الضغط على زر Trigger يدويًا. لا أعرف أي من هذه الوظائف يقوم بتحديث الأوسمة.

إعجاب واحد (1)

نعم، باستثناء حالة هامشية صغيرة تتعلق بمستخدم مجهول، حيث سيظهر الزينة القديمة في بعض الصفحات لمدة دقيقة واحدة.

سنقوم بالتحقيق وإصلاح المشكلة.

3 إعجابات

يظل تمييز المستخدم كما هو عند تغيير المجموعة الأساسية إلى مجموعة أساسية جديدة مرتبطة بتمييز خاص بها.

إعجاب واحد (1)

تم إصلاح هذه المشكلة الآن هنا

هل قمت بتغيير المجموعة الأساسية باستخدام الإجراء الجماعي “جعل الكل أساسيًا” في صفحة المجموعة الواحدة؟

4 إعجابات

لا، لقد قمت بتغيير المجموعة الأساسية لمستخدم واحد في صفحة إدارة المستخدم.

إعجاب واحد (1)

أود إعلامك بأن المشكلة لا تزال قائمة في الإصدار 2.8.0.beta4 (https://github.com/discourse/discourse/commits/1a65f0bfbbd32887a3c90fdaa894487c21f8467a)

لم نقم بالتحديث إلى أحدث إصدار بعد، إذ لا توجد تغييرات تهدف إلى إصلاح هذه الخلل.
في حالتنا، تظل شارات المستخدمين دون تغيير عند تحديث المجموعات عبر نظام Discourse Connect SSO. نلاحظ أن المستخدم غير موجود في المجموعة، لكن الشارة لا تزال ظاهرة.

نأمل أن يساعد هذا في تحديد الخلل وإصلاحه.

هذا الإصلاح لن يعمل بشكل رجعي. يجب عليك تحديث الشارات للمستخدمين القدامى يدويًا. هل يمكنني معرفة عدد المستخدمين المتأثرين بهذا في حالتك؟

واو. حسنًا، لا أعرف التقديرات. بناءً على تدفقات البيانات لدينا، قد يكون هناك عشرات ومئات من المستخدمين يغادرون أو ينضمون إلى مجموعات محددة عبر SSO كل يوم. على أي حال، هل يمكنني عد المستخدمين الذين يحملون شارات قديمة (غير مرتبطة بالمجموعات)؟

وكيف يمكن للمرء حتى تعديل شارات المستخدمين الآخرين؟ لم أتمكن من العثور على مثل هذا الخيار في لوحة الإدارة. لا أقول إنني سأقوم بتحديث عدد كبير من المستخدمين واحدًا تلو الآخر لإزالة آثار هذه الأخطاء.

على أي حال، إزالة الشارة من إعدادات المجموعة ورفع صورة شارة أخرى لا يفيد. لا يزال المستخدمون خارج هذه المجموعة يحتفظون بشارة المجموعة :(.

فقط أتحقق مما إذا كان أحد يعرف ما يجب فعله مع هذه المشكلة


آسف لرفع هذا المنشور عدة مرات، لكن هذا الخطأ يسبب بالفعل اضطرابًا في مجتمعنا :frowning:
@vinothkannans هل لديك أي اقتراحات حول كيفية التعامل مع آثاره علينا؟

User.where(flair_group_id: REPLACE_WITH_GROUP_ID).where.not(primary_group_id: REPLACE_WITH_GROUP_ID).update_all(flair_group_id: nil)

الأمر أعلاه يمكنه حل مشكلتك. قم بتشغيله في وحدة تحكم Rails. يرجى أخذ نسخة احتياطية قبل تنفيذه.

شكرًا لك على الرد.
هل فهمي صحيح بأنه، نظرًا لتأثيرات هذا الخطأ، يجب علينا تنفيذ استعلامات مثل هذه بشكل يومي أو بتردد آخر؟ المشكلة هي أن مجموعة المستخدمين لدينا يتم تحديثها يوميًا + في كل مرة يتغير فيها حالة اشتراك المستخدم على الموقع الرئيسي. يتم كل ذلك عبر SSO.

لا، لا تحتاج إلى تشغيل هذا بانتظام. الآن تم حل المشكلة في الالتزام المذكور أعلاه. سيؤدي هذا الأمر إلى إصلاح الـ flairs للمستخدمين المتأثرين سابقًا.

سأبحث عن حل بديل غدًا.

إعجاب واحد (1)

شكرًا لك، سأنتظر بصبر نتائج تحقيقاتك قبل اللجوء إلى استعلامات Rails. يرجى إعلامي إذا كان بإمكاني مساعدتك في هذه القضية.

@kinetiksoft أدناه كود Rails يجب أن يحل المشكلة لجميع الأعضاء في كل مجموعة. سيؤدي إلى إزالة تمييز المجموعة من المستخدمين إذا لم يعودوا ينتمون إلى مجموعة التمييز هذه.

ملاحظة: لا حاجة لتشغيل هذا السكربت بشكل دوري. إنه إصلاح لمرة واحدة لهؤلاء المستخدمين المتأثرين القدامى. قم بنسخ احتياطي كإجراء احترازي قبل تشغيله.

User.joins("LEFT OUTER JOIN group_users ON group_users.user_id = users.id AND group_users.group_id = users.flair_group_id").where(group_users: { id: nil }).where.not(flair_group_id: nil).update_all(flair_group_id: nil)

مرحبًا @vinothkannans،

شكرًا لك! سأخبرك بمجرد تشغيل الاستعلام، وسأقدم بعض التحديثات في الأيام القادمة للتأكد من عدم وجود أي تناقض بين العلاقات بين الشارات والمجموعات بعد ذلك.

إعجاب واحد (1)

أيضًا، قمت بدفع إصلاح آخر في الالتزام أعلاه. تأكد من ترقية موقعك بعد دمجه.

إعجاب واحد (1)

رائع، بالتأكيد، سأقوم بمراجعة الالتزامات القادمة في قسم الترقية.
هل يجب أن ننتظر مع استعلام SQL المذكور أعلاه أم يمكننا المضي قدمًا به دون انتظار دمج الالتزام في مثيل discourse الخاص بنا؟

يمكنك تشغيل الأمر بعد الترقية.

إعجابَين (2)