حقول المستخدم المخفية

:information_source: ملخص إنشاء حقول مستخدم مرئية فقط لمجموعات محددة
:hammer_and_wrench: المستودع discourse-hidden-user-fields
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

← املأ "repoName" و "repoURL" لزر التثبيت التلقائي →

Install this theme component

وصف تفصيلي

:warning: توخ الحذر مع البيانات الحساسة في هذه الحقول. لا توجد الحقول في المصدر، ولكن يمكن أن تكون مرئية إذا حدث خطأ ما :warning:

لدي مستخدمان، derek_test (يسار) و anon9 (يمين). يتم ملء حقلي المعرف والشركة في ملفاتهما الشخصية، ولكن واحد فقط مرئي للآخر. يمكن لـ derek_test رؤية ID ويمكن لـ anon9 رؤية Company.

ملفات تعريف المستخدم

بطاقات المستخدم

البحث

في هذه الحالة، يمكن لـ anon9 (يمين) رؤية الشركة والبحث عن Acme.


الإعدادات

CleanShot 2025-11-13 at 16.17.43

  • اسم الحقل: أدخل اسم حقل المستخدم المخصص (واحد لكل كائن)
  • المجموعات المسموح بها: حدد المجموعات المسموح بها من القائمة

المتطلبات الأساسية

يستفيد هذا من حقول المستخدم المخصصة. تحدد هذه الإعدادات مكان ظهور الحقول:

:white_check_mark: أعد زيارة هذه الإعدادات بمجرد ملء الحقول أو قم بإنشاء الأذونات مسبقًا، حتى لا يتم الكشف عن هذه الحقول أبدًا.

6 إعجابات

ماذا يرى المستخدمون غير المسجلين؟ إذن، إذا كان الحقل مرئيًا للمسؤولين فقط، فأتوقع أن المستخدمين لن يتمكنوا من رؤيته حتى بعد تسجيل الخروج، أليس كذلك؟


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

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

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

سأكون صريحًا وأقول إنني فعلت ذلك باستخدام Claude Code، لكنه قال إن نوع group_list غير متوفر في محرر الكائنات - فقط كإعداد على مستوى أعلى.

لذلك سيتعين أن يكون شيئًا كهذا، ولكن بعدد ثابت من الحقول المتاحة

CleanShot 2025-11-13 at 13.12.21

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

هذا مثير للاهتمام. بناءً على الوثائق، كنت أتوقع أن يدعم شيئًا كهذا أيضًا

إعجابَين (2)

شكراً لك على التنبيه! تمكنت من تعديل إعدادات المجموعة بناءً على تلك الوثائق!

سأقوم بتحديث التفاصيل أعلاه لتعكس التغيير.

إعجابَين (2)

حسنًا.. على الرغم من أن الإعدادات في محرر الكائنات قبلت list_type:group، إلا أنني لم أتمكن من تجاوز خطأ:

CleanShot 2025-11-13 at 13.52.29

لقد جربت بعض التحويلات المختلفة ولكن لم أتمكن من تجاوزها. الحكم هو أن “نوع groups في مخططات الكائنات موثق ولكن الواجهة الأمامية لم تنفذ الواجهة الرسومية.”

إعجابَين (2)

لقد رأيت هذا الخطأ أيضًا، ولكن بعد استخدام زر إعادة الضبط لإعادة تعيين إعداد الكائن بالكامل، لم يعد الخطأ: :woman_shrugging:

لذا كل شيء على ما يرام الآن
Screenshot_20251113_195748_Firefox

ربما لم يعجبه تغيير نوع الإعداد على تكوين موجود

إعجابَين (2)

أرى أن هذا سيكون مفيدًا جدًا!

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

مرحباً، @putty!

لدي بعض المشاكل معه:

أحتاج إلى إخفاء حقول المستخدمين عن كل مستخدم ليس في مجموعة المستخدمين - هل هذا هو الحال بالضبط؟

  1. إذا لم يكن المستخدم نفسه في هذه المجموعة - فلن يتمكن من رؤية هذه الحقول في حسابه الخاص - هل هذا جيد؟
  2. سيستمر المستخدمون الآخرون في عدم رؤية الحقول إذا لم يكونوا مسؤولين (Admin) أو مشرفين (Moderator)!
  3. بالمناسبة، يجب أن يكون المشرف والمسؤول أيضاً في هذه المجموعة لرؤية الحقول المخفية بواسطة هذا الثيم (Theme).

هل يمكنك المساعدة في ذلك؟

مرحباً أليكسي،
هل يمكنك التوضيح؟ لا أرى المشكلة. حاليًا يوجد 1 و 2. هل طلبك هو إخفاء الحقول عن المشرفين/المديرين أيضاً؟ على أي حال، سيتعين على المديرين إنشاء الحقل في البداية.

مرحباً، شكراً لك!

لقد اختبرته مرة أخرى على مستودع GitHub المحلي النظيف الأحدث وعلى الحل المستضاف بأحدث إصدار - تتأثر فئة المسؤول فقط ويمكنه رؤية الحقل المخفي إذا كان عضواً في مجموعة يُسمح لها برؤية هذا الحقل. حتى وصول المشرف (كما اعتقدت من قبل لا يعمل)

الحالة:

  1. مستخدمان، مسؤول ومستخدم اسمه Alex_1
  2. مجموعة المستخدمين L2_verified
  3. حقل المستخدم - الاسم الكامل (لجميع المستخدمين، الكل قيد التشغيل، قابل للبحث فقط إيقاف)
  4. كلا المستخدمين لديهما أسماء: Alex Admin و Alex
  5. إعدادات السمة:
    تضمين المكون في هذه السمات (Foundation، Horizon)
    اسم الحقل: الاسم الكامل
    المجموعات المسموح بها: L2_verified

النتائج:

  1. كلاهما ليسا عضوين في L2_verified - لا يرى أحد حقل الاسم الكامل (حتى اسمه الكامل الخاص)
  2. المسؤول عضو في L2_verified - يمكنه رؤية الاسم الكامل لـ Alex_1 (واسمه الكامل الخاص)
  3. Alex_1 عضو في L2_verified - لا يمكنه رؤية الاسم الكامل لنفسه وللمسؤول
  4. عندما منحت المسؤول لـ Alex_1 - يمكنه رؤية الاسم الكامل لكليهما - لنفسه وللمسؤول
إعجاب واحد (1)

إذًا… يبدو أننا بخير؟ هاها :sweat_smile:

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

اكتشف برنامج Antigravity with Gemini 3 Pro High السبب الجذري:

السبب الجذري الذي تم تحديده: المجموعة

L2_verified

موجودة و

Alex_1

عضو فيها، ولكن تم تعيين مستوى الرؤية للمجموعة على 4 (للموظفين/المالكين فقط).

بسبب هذا الإعداد التقييدي، لا يخبر Discourse المتصفح بأن

Alex_1

عضو في هذه المجموعة (ما لم يكن أيضًا من الموظفين/المسؤولين). لذلك، يتحقق مكون السمة (Theme Component) من القائمة، ولا يجد

L2_verified

، ويُبقي الحقل مخفيًا.

الإصلاح:

  1. اذهب إلى المجموعات (Groups)L2_verifiedإدارة (Manage)التفاعل (Interaction).

  2. غيّر من يمكنه رؤية هذه المجموعة؟ (Who can see this group?) إلى “الأعضاء (Members)” أو “الجميع (Everyone)”.

  3. احفظ.

  4. قم بالتحديث كـ

    Alex_1
    

    (غير مسؤول). يجب أن يعمل الآن!

لكنها ليست حلاً مؤقتًا في الوقت الحالي - معظم مجموعاتنا مخفية عن الجميع :frowning:

مرحباً @dereklputnam،

شكراً لك على هذا المكون الرائع! إنه أساس ممتاز لإدارة خصوصية المستخدمين على Discourse.

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

الميزات الرئيسية لهذه النسخة:

  • المنطق المتبادل: يتم الكشف عن حقل فقط إذا كان كل من العارض ومالك الملف الشخصي ينتميان إلى المجموعة المصرح لها.

  • إشراف الموظفين: يحتفظ المسؤولون والمشرفون برؤية كاملة لأغراض السلامة والإشراف.

  • الرؤية الذاتية: يمكن للمستخدمين دائمًا رؤية حقولهم المخفية، حتى لو لم يكونوا جزءًا من المجموعة المصرح لها بعد، حتى يتمكنوا من إدارة ملفهم الشخصي.

  • خصوصية الند للند: يضمن هذا أن المستخدمين المعتمدين لا يكشفون عن هويتهم لشخص لم يخضع لنفس مستوى التحقق.

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

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

في غضون ذلك، إذا احتاج أي شخص إلى هذا المنطق ثنائي الاتجاه، فيمكنكم الاطلاع عليه هنا: GitHub: https://github.com/AirVetra/discourse-hidden-user-fields-bidirectional

شكراً مرة أخرى على الإلهام!

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