I’m a bit confused as to how the visibility of automatic groups works. At this point, I am just talking about the /groups directory.
Here is what I am seeing in a pretty fresh install of 2.7.0.beta4:
If an user with admin or moderator bits looks at /groups, they see all 8 automatic groups (admins, moderators, staff, trust_level_[0-4]).
If a non-admin, non-moderator user (no matter the trust_level) looks at /groups, they see only the moderators group.
But, all of these groups have the same, default Visibility settings:
Who can see this group? Logged on users
Who can see this group’s members? Everyone
Is this how it is supposed to work? Or is there something wrong with the handling of the Visibility parameters for these groups?
What the code is doing is overriding the group visibility settings for automatic groups when the groups page is viewed by a non-staff users. Only the moderators group will be displayed.
Unrelated to the issue, but when I tried to onebox the Github link that I posted above, the code was displayed in the onebox without any formatting in the preview:
حسنًا، هذا يفسر الأمر. وأنا متأكد من أن الكود كُتب بأفضل النوايا، ولكنه معطل للأسباب التالية:
ربما أريد أن تكون المجموعات التلقائية الأخرى (بخلاف المشرفين) مرئية.
واجهة الإدارة للمجموعات التلقائية تسمح لي بتعيين رؤية المجموعات التلقائية غير المشرفين، ولكن هذا الإعداد يتم تجاهله.
سيكون من السهل جدًا حذف كتلة الكود هذه (والخطأ المطبعي اللطيف الذي نجا من السنوات الست الماضية).
الشيء الصعب، إذا اعتقد المرء أنه ضروري، سيكون تغيير إعداد الرؤية الحالي للمجموعات التلقائية إلى “مالكي المجموعة” حتى لا تظهر هذه المجموعات عن طريق الخطأ لجميع التثبيتات التي اعتادت على إجبارها على أن تكون غير مرئية. لا أعرف ما إذا كان لدى Discourse آلية ما لإجراء مثل هذه التغييرات أثناء الترقية — ولكن هذا هو نوع الشيء الذي يحتاج المرء إليه أثناء تغييرات المخطط، لذلك يجب أن يكون هناك شيء ما.
أيضًا: هذا السلوك “دعنا نخفي المجموعات التلقائية في كتالوج المجموعات على الرغم من إعداد الرؤية” سيء لأنه يحجب الجوانب * الأخرى * من visibility_level التي لا تزال ذات مغزى. على سبيل المثال:
يجرب المسؤول X إعدادات الرؤية ويدرك أن المستخدمين غير الموظفين لا يمكنهم رؤية trust_level_0 في كتالوج المجموعات بغض النظر عن أي شيء.
لذلك… يترك المسؤول X visibility_level و member_visibility_level مضبوطين على “الجميع”، نظرًا لأن هذه الإعدادات لا يبدو أن لها أي تأثير.
يتصفح المستخدم المجهول Z إلى /groups/trust_level_0 ويحصل على قائمة بجميع المستخدمين في الموقع.
ربما يهتم المسؤول X بذلك، وربما لا، ولكن في كلتا الحالتين سيتفاجأ المسؤول X بإمكانية حدوث ذلك.