منع المستخدمين من تغيير أسمائهم الكاملة

مرحباً بالجميع،

في المنتدى الذي نديرهُ، وعلى الرغم من أننا نمنح الكثير من المرونة في اسم المستخدم، إلا أننا اشترطنا (في شروط الاستخدام) أن يقدم المستخدمون أسماءهم الكاملة ولا يغيرونها إلا لتعكس تغييرات قانونية في الاسم. ليس لدينا الكثير من المستخدمين بعد (أقل من 250)، ولكن بالفعل، بدأ بعض الأشخاص في عدم احترام هذه القاعدة. لذلك نحتاج إلى طريقة لفرضها.

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

إذا لم يكن الأمر كذلك، فهل يمكن إضافة هذه الميزة إلى الكود؟

شكراً

3 إعجابات

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

4 إعجابات

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

إعجابَين (2)

يبدو أن المكون الإضافي غير موجود ولكن الحل البديل لـ CSS هو مجرد فحص من Firefox أو Chrome والنقر في المربع الذي تريد إخفاءه وتعديل CSS في السمة:

إعجابَين (2)

أعتقد أن الخيار الأقوى هنا هو استخدام موفر مصادقة خارجي (OAuth أيًا كان) مع خيار “تجاوز اسم المستخدم للمصادقة”:

يتجاوز الاسم الكامل المحلي بالاسم الكامل للموقع الخارجي عند كل تسجيل دخول، ويمنع التغييرات المحلية. ينطبق على جميع موفري المصادقة.

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

هذا سيؤدي الغرض ولكن تضمين خدمات الطرف الثالث ليس صفقة جيدة للكثيرين منا ممن لا بأس بترك المستخدمين يختارون مزود البريد الإلكتروني الخاص بهم.

بـ “خارجي”، لا أعني “طرف ثالث” بل “خارجي عن discourse”. يمكنك استخدام حل طرف ثالث، أو يمكنك تشغيله بنفسك.

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

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

مرحباً،
شكراً على الاقتراح، ولكن للأسف، هذا ليس خياراً حالياً. ليس لدينا نظام تسجيل دخول موحد مركزي وإدارته أكثر مما أرغب في القيام به!

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

شكراً @satonotdead على الروابط التي قدمتها، سأتصفح هذا المحتوى وأرى ما إذا كان بإمكاني إدارة التغيير بسهولة. على المدى الطويل، عندما يكون لدي وقت (قد أحتاج إلى الانتظار 15 عاماً أو أكثر حتى التقاعد لهذا :sweat_smile:)، قد أختار استثمار الوقت في كتابة إضافة…

إعجابَين (2)

هل سيعمل الحل الهجين @AriesFR؟

إذا أخذت اقتراح جاي @pfaffman بإخفائه باستخدام CSS ثم أنشأت حقلاً مخصصًا للمستخدم وجعلت الإعدادات كالتالي:

:thinking:

إعجابَين (2)

حسنًا، يمكن أن ينجح ذلك بالفعل، لكنني ما زلت أريده أن يظهر بجوار اسم المستخدم كما هو محدد حاليًا للاسم الكامل.

في الوقت الحالي، سيكون إخفاء قسم الاسم الكامل من قسم تحديث ملف تعريف المستخدم حلاً مؤقتًا مقبولاً. لا يزال بإمكاني التعامل مع الاستثناءات القادمة من المستخدمين الفضوليين للغاية.

ما زلت لا أستطيع أن أفهم لماذا يبدو أن هذا خيار القفل يمثل مشكلة كبيرة في المنتج الأساسي كما هو الحال بالنسبة لاسم المستخدم… يبدو الأمر عقائديًا للغاية.

[وضع المزاح مفعل]
يشبه الأمر عدم السماح بتوقيعات المستخدمين لأن ذلك لمصلحتنا.
[وضع المزاح معطل]

لقد ألقيت نظرة؛ يمكن إخفاء الحقل باستخدام واجهة برمجة التطبيقات، لكنني لا أستطيع العثور على أي بيانات يمكنني الاعتماد عليها لمعرفة ما إذا كان هذا المستخدم معتمدًا أم لا (في سياق صفحة التفضيلات) :thinking:

هذا ما لدي في الوقت الحالي.
لست متأكدًا مما إذا كان يجب أن أشعر بالسوء؛ ربما يكون الأمر مخترقًا قليلاً هنا. :smile:

js

<script type="text/discourse-plugin" version="0.8">

const { setting } = require("discourse/lib/computed");

api.modifyClass("controller:preferences/account", {
  pluginId: "hide-name-in-preferences",

  get canEditName() {
    const enables_name = setting("enable_names");

    if (enables_name && this.isCurrentUser && !this.model.staff) {
      if (this.model.name) {
        // Hide only the input field (name is displayed)
        this.model.can_edit_name = false;
      } else {
        // Hide the whole section
        return false;
      }
    }

    return enables_name;
  },
});
    
</script>
إعجاب واحد (1)

ليست مشكلة أو عقيدة، يتم تحديد أولويات معظم ميزاتنا بناءً على الطلب، ولم يكن هناك الكثير من الطلب على هذا.

9 إعجابات

شكراً @Arkshine، هذا يبدو كثيراً مما أحتاجه. سأضطر فقط إلى البحث عن كيفية تضمين هذا في بيئتي :slight_smile:، ولكن من المحتمل أن أكون قد قمت بتضمينه بحلول نهاية هذا الأسبوع.

شكراً، يمكنني فهم تحديد الأولويات، على الرغم من أن الآلية العامة موجودة بالفعل، وعلى حد علمي، فقد تم طلبها عدة مرات من قبل المستخدمين. إذا كانت الرقعة بسيطة حقاً كما قدمها Arshkine للتو، فيبدو لي أنه كان قراراً واعياً بعدم منح نفس “اللطف” لهذا الحقل كما كان للآخرين.

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

تحياتي

يمكن تجاوز مكون السمة عن طريق استخدام الوضع الآمن أو تعديل الأشياء في المتصفح بطريقة أخرى.

في الغالب، يتم دفع التطوير بواسطة الأشخاص الذين يستضيفون مع CDCK/Discourse.org، حيث يأتي المال من هناك. في بعض الأحيان تضاف الميزات إذا أرادها / احتاجها الكثير من الناس، ولكن إذا لم يكن هؤلاء الأشخاص يدفعون المال لـ CDCK، فيجب أن يكونوا كثيرين جدًا، أو ميزة تبدو وكأن العديد من العملاء الذين يدفعون سيكونون سعداء بالحصول عليها. لاحظ، أنا لا أعمل لديهم، لذا هذه مجرد ملاحظتي من السنوات الثماني الماضية تقريبًا.

5 إعجابات

بالفعل! قد ترغب في تعطيل إعداد تمكين الوضع الآمن حتى لا يتمكن غير المسؤولين من استخدامه.

3 إعجابات

أوه! لقد فاتني ذلك. لا يزال من الممكن التحايل عليها من قبل الأشخاص الأذكياء باستخدام وحدة تحكم مطوري المتصفح.

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

شكرًا، لم ألاحظ هذا المعامل، لقد تم تعطيله الآن!

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

تكهنات: لن أتفاجأ إذا كان معظم الأشخاص الذين يريدون هذا وهم عملاء يدفعون بالفعل لديهم بالفعل نظام تسجيل دخول موحد (SSO) من نوع ما. لذا يصبح ميزة أكثر تخصصًا للجميع.

3 إعجابات

لا يبدو أنك تقوم بأي شيء للمصادقة على الاسم الكامل الذي يقدمه المستخدمون عند التسجيل. فإذا قاموا بتغييره من Bob Jones إلى Sam Smith، فكيف تعرف أن أيًا من الاسمين يخصهم؟

إعجابَين (2)