المستخدمون المعطلون لا يتم تعطيلهم أحياناً

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

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

هذا هو الآخر (تمكن موظف مختلف من “إلغاء تنشيط” نفس المستخدم مرة أخرى بعد 4 ساعات دون إعادة تنشيط سابقة):

أنا على 2.9.0.beta9

لا تزال هذه المشكلة مستمرة (تحدث عدة مرات في الشهر). هل لاحظها أي شخص آخر؟

هذا هو رمز وحدة التحكم

يعمل StaffActionLogger بشكل صحيح، لكنني أتساءل عما إذا كان هناك شيء ما في طريقة User.deactivate قد يفشل.

القاسم المشترك بين الأخطاء هو أنها تأتي من طلبات API. هذا ما أستخدمه عادةً:

PUT https://<MY_SITE>/admin/users/<USER_ID>/deactivate

Api-Username:<ADMIN_USER>
Api-Key:<KEY>

data: {"context":"/admin/users/<USER_ID>/<USER_NAME>"}

أتلقى دائمًا “success: OK”

هل هناك أي سجل آخر يمكنني التحقق منه أو شيء آخر يمكنني تجربته؟

أنا على 2.9.0.beta11

لا يزال هذا يحدث بشكل متقطع. على سبيل المثال، تم “تعطيل” هذا المستخدم في البداية في 23 أغسطس، لكنني لاحظت الآن فقط أنه كان لا يزال نشطًا وقمت بتعطيله بالفعل.

كيف يمكن تعطيل مستخدم مرتين (بدون إعادة تنشيط بينهما)؟

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

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

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

عندما يحاول المستخدم الذي تم إلغاء تنشيطه تسجيل الدخول، سيرى هذا النموذج:

سيرسل Discourse إليهم بريدًا إلكترونيًا بعنوان “تأكيد حسابك الجديد”:

بعد النقر فوق الرابط الموجود في البريد الإلكتروني، سيتم تسجيل دخول المستخدم إلى Discourse.

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

تعديل: للحصول على السلوك الذي تبحث عنه، ربما ترغب في “تعليق” المستخدم بدلاً من إلغاء تنشيطه.

4 إعجابات

تم حل اللغز! شكراً لك يا سيمون. يمكنك إغلاق هذا الموضوع.

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

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.