عناوين بريد إلكتروني متعارضة، مما يمنح المسؤولين مزيدًا من القوة لحل المشكلات

أحد مستخدمينا يمتلك حسابين على Discourse، أحدهما لم يعد مستخدمًا، والآخر جديد ولا يستطيع الدخول إليه. والسبب على ما يبدو هو أن الحساب الجديد لديه لدى مزود CAS SSO لدينا يحتوي على نفس عنوان البريد الإلكتروني المحدد في حسابه القديم على المنتدى الخاص بنا.

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

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

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

إذا لم يتسبب ذلك في تعطيل Discourse، فسأكون سعيدًا جدًا بوجود ميزة تسمح لي بحذف عنوان بريد إلكتروني من حساب معطل، بدلاً من مجرد تعيينه إلى حالة “غير مؤكد”.

إذا كانت هناك أي طرق أخرى يمكنني من خلالها التعامل مع هذه المشكلة، فيرجى إعلامي. شكرًا!

لماذا لا ندمج المستخدمين القدامى في المستخدم الجديد؟

أعتقد أنك تستخدم تطبيق Discourse الخاص بـ SSO وتقوم بتعيين معلمة require_activation الخاصة بـ SSO إلى true في حمولة SSO. إذا كان الأمر كذلك، فراجع هذا الموضوع للحصول على تفاصيل حول إصلاح المشكلة: Debug and fixing common DiscourseConnect issues. من الآمن أكثر تنفيذ أوامر وحدة تحكم Rails المذكورة في ذلك الموضوع بدلاً من تحديث قاعدة البيانات مباشرة باستخدام استعلامات SQL.

دمج الحسابين، كما هو موضح في المنشور أعلاه، يُعدّ نهجًا جيدًا على الأرجح، ولكن قد تحتاج إلى إجراء بعض التعديلات على سجل SSO بعد القيام بذلك.

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


Discourse 2.5.0.beta3 Release Notes

دمج المستخدمين عبر واجهة المستخدم

في أوائل عام 2018، أضفنا دعمًا لدمج حسابي مستخدمين معًا. ولإنجاز ذلك، كان مطلوبًا الوصول عبر SSH إلى الخادم، حيث تم إضافة دعم الدمج كمهمة rake.

يمكن الآن دمج المستخدمين من قبل أي مسؤول! قم بزيارة صفحة إدارة المستخدمين، واختر “نقل وحذف” في أسفل الصفحة.image

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

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

حسنًا، لقد نجح كل شيء. عند دمج الحسابات، احتفظت منصة Discourse ببيانات اعتماد الدخول الموحد (SSO) الخاصة بالحساب المستهدف/المدمج/غير المحذوف، بينما تم حذف الحساب الآخر.

شكرًا لك على مساعدتك في هذا الأمر. : )