رسالة ترحيب TL2 مرسلة في كل مرة عند تسجيل الدخول عبر SSO

The following is happening:

Some users are getting the TL2 welcome notification (“we promoted you up a trust level”) on every login.

This happens under the following circumstances:

  • SSO login is enabled where Discourse is the SSO client
  • “Sync User Data” is enabled in WP-Discourse so it issues a sync_sso call every time the user logs into Wordpress
  • sync_sso is setting a group that has a grant_trust_level which is lower than the current trust level of the user

This causes the trust levels for the user to be recalculated from the ground up and the welcome message to be sent every time.

6 إعجابات

مرحباً،

شكراً لمشاركة هذه المشكلة! لقد حاولت إعادة إنتاج هذه المشكلة محلياً ولكني لم أتمكن من ذلك، إليك إعداداتي:


(Wordpress)

  • إعداد مستخدم Wordpress باسم “Steaky” مع البريد الإلكتروني steaky@cat.com
  • إضافة wpdc_custom_sso_params لتعيين مجموعة “cats” لجميع المستخدمين الذين يسجلون الدخول باستخدام $params['groups'] = 'cats';

(Discourse)

  • إنشاء مستخدم باسم “Steaky” مع البريد الإلكتروني steaky@cat.com
  • جعل Steaky في trust_level_3 بشكل شرعي (غير مقفل)
  • إنشاء مجموعة “cats” وتعيين “مستوى الثقة الممنوح تلقائياً للأعضاء” إلى 2 لـ “cats”

تم توصيل Wordpress و Discourse :ok_hand: وأيضاً :ballot_box_with_check: مزامنة بيانات المستخدم.

(Discourse)

  • تسجيل دخول Steaky، يتم إعادة توجيهه إلى Wordpress وتسجيل الدخول، ثم إعادة توجيهه مرة أخرى إلى Discourse
  • (تأكيد أن “cats” تم تعيينها لـ Steaky)
  • لا يرى Steaky رسالة الترحيب

^ كرر ما سبق مع SiteSetting.discourse_connect_overrides_groups، نفس النتيجة.


أشك في أن لديك إعداداً أكثر تفصيلاً. سيكون من الرائع لو أمكنك مشاركة المزيد من التفاصيل حول إعداد المستخدمين المتأثرين لديك:

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

شكراً!

4 إعجابات

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

بالعودة إلى ملاحظاتي. ما حدث كان مختلفًا قليلاً عما تفعله. كان SSO يمرر حقل مجموعات فارغًا (فقط groups=). لكن المستخدمين المعنيين كانوا أعضاء في مجموعة أخرى، غير معروفة لموفر SSO، والتي كانت تجبر أعضائها على المستوى 2.

بالإضافة إلى ذلك، فإن رسائل الترحيب للمستوى 2 والمستوى 3 تتصرف بشكل مختلف قدر ما أتذكر، لذلك قد تحتاج إلى استخدام المستوى 2 بدلاً من المستوى 3 إذا حاولت تكرار هذا.

لذلك، لتكرار هذا، أعتقد أنك بحاجة إلى القيام بما يلي: (لاحظ أنني أدخلت مجموعة ثانية)

(ووردبريس)

  • قم بإعداد مستخدم ووردبريس “Steaky” بالبريد الإلكتروني steaky@cat.com
  • أضف wpdc_custom_sso_params لتعيين مجموعة dogs لجميع المستخدمين الذين يسجلون الدخول باستخدام $params['groups'] = 'dogs';

(Discourse)

  • أنشئ مستخدمًا “Steaky” بالبريد الإلكتروني steaky@cat.com
  • اجعل Steaky trust_level_1 بشكل شرعي (غير مقفل)
  • أنشئ مجموعة “cats” و “dogs” واضبط “مستوى الثقة الممنوح تلقائيًا للأعضاء” على 2 لمجموعة “cats”
  • اجعل Steaky عضوًا في مجموعة cats
إعجابَين (2)

هل تمكنت من النظر في هذه المشكلة بشكل أكبر؟

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

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

3 إعجابات