لا تعرض أسماء المستخدمين التي تحمل شارة معينة

هل هناك طريقة لإخفاء قائمة المستخدمين الذين لديهم شارة معينة؟

لقد اطلعت على Don't list members having the same badges و Hide badge user list? لكنهما لا يناسبان حالة الاستخدام الخاصة بنا تمامًا (أو على الأرجح، حالتنا الاستثنائية).

الشارات تحظى بشعبية كبيرة في مجتمعنا، وهي مورد رائع للمشاركة.

لدينا بعض الفئات المميزة على Discourse الخاص بنا وهي متاحة فقط للمشتركين / الأعضاء الذين يدفعون، ونود مكافأة هؤلاء الأعضاء الذين يدفعون بشارة ذهبية لملفهم الشخصي، ولنطلق عليها اسم “عضو مميز للغاية” في هذا المثال.

عدد الأعضاء الذين يدفعون هو رقم حساس تجاريًا.

سيتم تسريب هذا الرقم لأي شخص يحمل شارة “عضو مميز للغاية”، على الرغم من أنه مخفي في صفحة الشارة، يمكنهم ببساطة النقر على شارتهم الخاصة ثم رؤية جميع الأعضاء الآخرين الذين يحملون هذه الشارة أيضًا.

هل هناك طريقة لمنع الأشخاص من رؤية من يحمل شارة واحدة محددة؟ :thinking:

هل يمكنك استخدام التألق بدلاً من ذلك؟

همممم :thinking:

من المحتمل جداً…

هل يحمل هذا التحذير خطر تسريب أرقام أعضاء حساسة؟

\u003e نظرًا لأن هذه مجموعة أساسية، سيتم استخدام الاسم ‘hidden_group_test_2’ في فئات CSS التي يمكن لأي شخص رؤيتها.

عذرًا على الألوان الصاخبة، إنها فقط للاختبار:

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

ليس لدي أي اعتراض على تسريب اسم المجموعة المخفية، طالما لم يتم تسريب قائمة الأعضاء / عددهم.

لقد أجريت بعض الاختبارات ولكنني لست متأكدًا من أن هذا مثالي لحالة استخدامنا أيضًا.

يتم تطبيق التمييز (من مجموعتنا المخفية) على المستخدم، ولكن في اللحظة التي ينضمون فيها إلى أي من مجموعاتنا الأخرى، يتم استبدال تمييزهم بتمييز المجموعة التي انضموا إليها للتو.

على ملفهم الشخصي، يمكنهم بعد ذلك اختيار تمييز لمجموعة عامة فقط، ويفقدون تمامًا الوصول إلى تمييزهم الخاص كأعضاء ولا يمكنهم إعادة تطبيقه :confused:

هل لديك هذا الإعداد على المجموعات الأخرى:

Screenshot 2023-02-07 at 2.09.34 PM

إنه تحت “التأثيرات” في إدارة/عضوية كل مجموعة.

إذا تم إعداده على تلك المجموعة وليس على غيرها، فلا ينبغي أن يتجاوز.

ستحدد المجموعة الأساسية العلامة الافتراضية واللقب للمستخدم.

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

نعم، تم تعيينه على جميع مجموعاتنا، لذا يحصلون على التمييز للمجموعة التي انضموا إليها للتو.

كانت الأفكار الأخرى تدور حول فرض لقب على جميع المستخدمين، مثل “ضيف” على سبيل المثال، ولكن يمكنهم تغييره إلى أي من الألقاب التي يحملونها. لا أعتقد أنه يمكنني منع الأشخاص من تغيير لقبهم.

أبحث عن طريقة للضيوف والأعضاء للتعرف على بعضهم البعض (أي شارة)، ولكن دون الكشف عن عدد الأعضاء المميزين الإضافيين لدينا.

هل ستكون هناك أي حلول مبتكرة أخرى أو حلول بديلة؟

هل يمكنني فعل شيء ذكي باستخدام “حقول المستخدم”؟

ربما إنشاء حقل مستخدم يسمى “الحالة”، وجعله مرئيًا في ملفهم الشخصي، ولكن لا يمكنهم تعديله. هل يمكنني بعد ذلك تحديث حقل المستخدم “الحالة” هذا تلقائيًا عن طريق استدعاء واجهة برمجة التطبيقات؟ (نطلق استدعاء واجهة برمجة التطبيقات لإضافتهم إلى مجموعة)

قد أكون على وشك اكتشاف شيء ما هنا:

لقد قمت بإنشاء حقل مستخدم يسمى “عضو”، ولا أسمح لهم بتعديله:

إذا قمت بتعديل مستخدم واحد للاختبار، يمكنني رؤية “عضو: نعم” في ملفهم الشخصي:

هذا هو المحدد على الأرجح:

كيف يمكنني القيام بذلك؟ :thinking:

لدي بالفعل استدعاءات API يتم إجراؤها بالفعل عندما يصبح شخص ما عضوًا، وأقوم بتشغيل استدعاء API لإضافتهم إلى مجموعة. هل يمكنني أيضًا تشغيل استدعاء API ثانٍ لتحديث حقل المستخدم هذا؟

بالتأكيد :slight_smile:

في كل مرة تقوم فيها بأي إجراء في Discourse، يمكنك التحقق من علامة التبويب Network في أدوات المطور في متصفحك لرؤية الاستعلام الذي تم إجراؤه.

على سبيل المثال، هنا أقوم بحفظ ملف تعريف مستخدم:

سترى عنوان URL للطلب، مع ذكر اسم المستخدم، ونوع الطلب (PUT).
في علامة التبويب Payload، سترى البيانات ذات الصلة:

يتم سرد الحقول المخصصة كـ user_fields[X] حيث X هو رقم الحقل المخصص.


تعديل: رأيت أنك اكتشفت الأمر في #dev، لذا، فقط لربط الموضوع… :slight_smile:

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