من أجل اقتراح حل لـ https://meta.discourse.org/t/restrict-exposure-of-full-name-to-certain-groups/348873، أود تعريف شرط (من جانب الخادم) للتحقق من الصلاحيات يجيب على السؤال:
بناءً على نطاق/سياق المستخدم الحالي، هل من المقبول الكشف عن الأسماء الكاملة للمستخدمين (الآخرين)؟
(يمكن تعيين النطاق بواسطة طلب من العميل، أو بواسطة خطوة معالجة داخلية، مثل إنشاء رسائل بريد إلكتروني ملخصة.)
ما هو البناء الصحيح لمثل هذا الشرط؟ أين يجب أن يعيش في قاعدة الكود؟ أفكر في أن هذا ربما ينتمي إلى guardian — هل أنا على المسار الصحيح؟ أي آراء حول أي منها؟
أتخيل أن هذا الشرط الجديد سيستوعب العديد (ولكن ليس كلها) من حالات SiteSettings.enable_names? الموجودة حاليًا في قاعدة الكود. (الوصول إلى Serializers التي تنتج user.name يسد معظم تسرب البيانات، ولكن ليس كلها.) فائدة لطيفة لهذا هي أنه سيقدم نقطة امتداد يمكن من خلالها لمكون إضافي مستقبلي تغيير السلوك (وهو أمر غير ممكن حاليًا، على حد علمي، أو كنت سأفعل ذلك!). لذا، إذا نجحت في ذلك، فسيصبح هذا طلب سحب إلى نواة discourse — وأود تقديم طلب سحب لديه أمل في قبوله.