كان هناك ما يُعرف بـ @everyone، وهو اسم زائف لمجموعة، وقد كان محيرًا تاريخيًا ضمن قاعدة الكود لدينا، ويمكن استخدامه في:
- إعدادات الموقع من نوع
group_list - أذونات الفئات
- مجموعات الوسوم
في بعض الحالات، يفسر البعض @everyone على أنه “جميع المستخدمين المجهولين وجميع المستخدمين المسجلين في النظام”، بينما يفسره آخرون على أنه “جميع المستخدمين المسجلين في النظام” فقط. والحقيقة في حالة إعدادات الموقع هي أنه في معظم الحالات، يعني فقط “جميع المستخدمين المسجلين في النظام”.
وتزيد من هذا الارتباك حقيقة أن مجموعة @everyone هذه يمكن استخدامها في إعدادات الموقع حيث لا يكون من المنطقي منح “جميع المستخدمين المجهولين والمسجلين في النظام” حق الوصول إلى الميزة، مثل pm_tags_allowed_for_groups.
كما أن هذا الأمر محير من منظور ميزة التمييز (feature flagging) وتجربة المطورين، حيث قد نرغب في بعض التغييرات القادمة أو الإعدادات الأخرى في تمكينها حقًا لـ “جميع المستخدمين المجهولين والمسجلين في النظام”.
الحل
نحن نعرض مجموعتين تلقائيتين منفصلتين:
anonymous (ID 4)- تمثل المستخدمين المجهولين الذين يزورون موقعك دون حسابlogged_in_users (ID 5)- تمثل جميع المستخدمين المسجلين في موقعك، وتأثيرها مشابه لمجموعةtrust_level_0التلقائية، لكنها أكثر تحديدًا
تم إدخال هاتين المجموعتين بالفعل، لكنهما ستصبحان فعالتين فقط عند تمكين التغيير القادم granular_anonymous_and_logged_in_groups_permissions في موقعك.
عند تمكين التغيير القادم، سيتم تحويل أي إعداد يحتوي على everyone كمجموعة مختارة تلقائيًا إلى معرف مجموعة logged_in_users، وبالتالي لن يتغير أي بيانات في جدول إعدادات الموقع عند تبديل التغيير القادم. وعندما يصبح التغيير القادم دائمًا، سنقوم بهجرة البيانات لجميع إعدادات المجموعات لإجراء هذا التغيير.
بالإضافة إلى ذلك، قمنا بوضع علامة disallowed_group على مجموعة anonymous في عدة إعدادات للموقع حيث لا يكون من المنطقي استخدامها، مثل personal_message_enabled_groups.
ماذا عن أذونات الوسوم والفئات؟
ستبقى هذه الأذونات دون تغيير، لأن مفهوم “الجميع” فيها يختلف بعدة طرق ولا يعتمد على المجموعة التلقائية الأساسية.
