لقد واجهتُ هذا للتو في منتدى أديره. خطوات التكرار:
إنشاء مجموعة جديدة بصفتك مسؤولًا
تعيين الرؤية إلى “أصحاب المجموعة”
إنشاء المجموعة
العودة إلى /g
لن تظهر المجموعة
إذا قمت بفحص وحدة التحكم باستخدام Group.find_by(name: <name>)، فستُرجع النتيجة بشكل صحيح. تغيير الرؤية إلى “أصحاب المجموعة والموظفون” يُرجع الرؤية بشكل صحيح.
ما لم يكن هذا التصميم مقصودًا، فإن افتراضي هو أنه حتى المسؤولين يجب أن يروا المجموعات عند مستوى هذه الرؤية (على الرغم من أن المشرفين لا يرون ذلك).
لم ألاحظ هذا السلوك حتى الترقية إلى الإصدار 2.4.0.beta2 أمس.
لا يمكنني تكرار هذه المشكلة يا @justin. جربت ذلك محليًا وعلى خادم مستضاف عبر DO، وحاولت إنشاء مجموعة من حسابي إداريين مختلفين. في جميع الحالات، يرى المسؤولون جميع المجموعات.
لقد جربت ذلك على تثبيت جديد وحصلت على نفس النتائج مثلك يا @pmusaraj. أعتقد أن المشكلة تكمن في أحد الإضافات التي أستخدمها. إذا اكتشفت ما الأمر، سأعود وأبلغكم.
مرحبًا، لقد قمت للتو بتغيير وضعية رؤية مجموعة من “مالكي المجموعة” إلى “مالكي المجموعة والأعضاء” فأصبحت مرئية مرة أخرى. أتساءل هل هناك شيء غريب في الكود الخاص بإعدادات المجموعة عندما تكون الرؤية مقيدة بـ “مالكي المجموعة”؟
@outofthebox هل من قبيل الصدفة أن يكون لديك مكون إضافة دردشة Babble مثبتًا؟ يبدو أن هناك انتكاسة تتعلق بذلك بعد إزالته من مثيلتي. أدى إلغاء تثبيت مكون الإضافة هذا وإعادة بنائه إلى استعادة رؤية المجموعة.
اكتشاف رائع يا @justin، لقد ألقيت نظرة سريعة على كود مصدر Babble، ويبدو أن هناك تعارضًا مع تحديثاتي للمجموعات في النواة. يضيف Babble قاعدة ثابتة لـ visibility_level: 4، والتي تتعارض الآن مع مجموعة owners في النواة.
آمل أن يتسنى لـ @gdpelican تخصيص بعض الوقت للنظر في الأمر.
يبدو أن babble قد خصصت visibility_level خاصة بها لاستخدامها، وأخذت الثابت غير المستخدم التالي (4).
قبل بضعة أسابيع، أضافت نواة Discourse visibility_level جديدة أيضًا، وأخذت الثابت غير المستخدم التالي، الذي كان 4 أيضًا. وهذا تسبب في استخدام مكرر لهذا الثابت.
لذلك سيتكون الإصلاح من جزأين:
تغيير visibility_level المستخدمة بواسطة babble. سيكون ذلك سهلاً. إذا أردنا القيام بذلك بشكل أنيق حقًا، فسوف نقوم بتسجيل كل ملحق خاص به BASE_VISIBILITY_LEVEL لتجنب التعارضات المستقبلية. ولكن حاليًا يمكننا ببساطة اختيار قيمة ما (على سبيل المثال 1001).
تغيير المجموعات ذات visibility_level 4 إلى الثابت الجديد - ولكن فقط المجموعات التي كانت تستخدم بواسطة babble.
هل سيختار هذا الاستعلام المجموعات الصحيحة يا @gdpelican؟
UPDATE groups
SET visibility_level = 1001
WHERE id IN (
SELECT g.id
FROM topics t
LEFT JOIN topic_allowed_groups tag ON tag.topic_id = t.id
LEFT JOIN groups g ON g.id = tag.group_id
WHERE t.archetype='chat');