ترقية المستخدمين إلى TL2 عند الانضمام إلى مجموعة - بأثر رجعي؟

لقد قمت بتعديل مجموعة موجودة وضبطت قيمة مستوى الثقة الممنوح تلقائيًا للأعضاء عند إضافتهم إلى 2، لذلك سيتم توجيه جميع أعضاء هذه المجموعة إلى مستوى الثقة 2 عند إضافتهم إلى المجموعة:

ومع ذلك، فإنه لا يضيف بأثر رجعي جميع أعضاء المجموعة الحاليين إلى مستوى الثقة 2 :confused:

كيف يمكنني فرض حدوث ذلك؟

أو كيف يمكنني ترقية جميع أعضاء المجموعة بأثر رجعي إلى مستوى الثقة 2؟ :thinking:

3 إعجابات

:warning: هذا الحل متقدم. لا يمكن تنفيذ أوامر Rails إلا إذا كان لديك وصول SSH إلى الخادم الخاص بك ويجب تجنبها إذا لم تكن متأكدًا مما تفعله. في أي حال، قم دائمًا بعمل نسخة احتياطية أولاً.


مرحبًا ريتشي :slight_smile:
يمكنك استخدام نص برمجي لـ Rails مشابه لهذا:
يجب أن ينجح ذلك من وحدة تحكم Rails:

target_group = Group.find_by_name("test")
users = User.joins(:group_users).where(group_users:{group_id: target_group.id})
users.each do |u|
  u.trust_level = 2
  u.save
end

شكرًا @nathank على Delete all users not in a specific group - #2 by nathank :slight_smile:

3 إعجابات

شكراً @Canapin

أنا لست على دراية بوحدة تحكم rails على الإطلاق، لكنني قمت بتشغيل ما نشرته هنا وهي الآن عالقة عند END وتومض مؤشرًا أمامي:

هل أحتاج إلى تثبيت هذا التغيير بطريقة ما؟ :thinking:

(لم يتم ترقيتهم إلى TL2)

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

لا، هذا مجرد خرج لا يؤثر على تنفيذ البرنامج النصي. أعتقد أنه يمكنك الضغط على q للخروج منه.

يمكنك أيضًا استخدام هذا:

قد يكون مرتبطًا بجزء Group.find_by_name("test"). لا أعرف ما إذا كان يقبل اسم المجموعة الفعلي، أو الاسم المستعار. :person_shrugging:


أيضًا، كان يجب أن أذكر أن استخدام أوامر rails متقدم جدًا ويجب عمل نسخة احتياطية قبل القيام بهذا النوع من الأشياء. أنا آسف لذلك.

إعجابَين (2)

هممم، لقد حدث شيء غريب.

إذا نظرت إلى مستخدم كان في المستوى 1 قبل تشغيل هذا السكربت، أرى أنه أصبح الآن في المستوى 2 (وهو أمر رائع، شكرًا جزيلاً لك!)

ولكن، إذا نظرت إلى مجموعة المستخدمين في المستوى 2، فإن العدد الإجمالي للمستخدمين في المجموعة لم يزد :thinking:

وبالمثل، إذا بحثت عن أحد المستخدمين الذين تمت ترقيتهم للتو إلى المستوى 2، فلن يظهروا في نتائج البحث لمجموعة المستوى 2:

:thinking:

أيضًا، لم يحصل المستخدم على شارة المستوى 2:

:thinking:

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

يتم تحديث المجموعات أثناء مهمة Sidekiq.

المهمة هي EnsureDbConsistency ويمكن تشغيلها عبر Sidekiq، إذا كنت تعرف كيفية القيام بذلك. يمكنك أيضًا الانتظار بضع ساعات؛ سيتم تحديث المجموعات تلقائيًا. :slight_smile:

لقد اكتشفت ذلك هنا:

:slight_smile:

3 إعجابات

رائع، شكراً لك!
سأنتظر بصبر حتى يتم حل المشكلة من تلقاء نفسها :blush:
شكراً لوقتك @Canapin - ولحلك - لقد وفرت عليّ الكثير من الوقت بالقيام بذلك يدوياً :scream:

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

على الرحب والسعة.

لقد كنت سريعًا جدًا في اقتراح أمر rails دون تحذير مناسب لأنه يمكن أن يسوء إذا لم نكن نعرف حقًا ما نفعله. سأضيف تحذيرًا أكثر وضوحًا إلى منشوري :slight_smile:

3 إعجابات

يبدو أن مهمة Rails هذه قد خفضت رتبة جميع المستخدمين لدينا من المستوى 4 والمستوى 3 إلى المستوى 2 :thinking:
آمل أن تقوم مهمة EnsureDbConsistency بإصلاحهم جميعًا تلقائيًا بين عشية وضحاها :blush:

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

سيتم ذلك، سيتم ترقية مستخدمي TL3 بافتراض أنهم لا يزالون يستوفون المعايير.

سيحتاج مستخدمو TL4 إلى ترقية يدوية.

لتجنب ذلك، يحتاج كل مستخدم إلى تقييمه حسب البيان وترقيته فقط إذا كان حاليًا أقل من TL2.

إذا كان مستخدمو TL4 لديك أعضاء في مجموعة أيضًا، فيمكنك استخدام ذلك لترقيتهم دفعة واحدة.

3 إعجابات

معلومات رائعة، شكرًا @Stephen سأقوم بذلك الآن :slight_smile:

3 إعجابات

كل شيء يبدو رائعًا هذا الصباح :blush:

شكرًا مرة أخرى @Canapin و @Stephen :wave:

3 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.