لا يمكن حذف المستخدم مع الرسائل الخاصة، رسالة خطأ مضللة

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

ومع ذلك، يبدو أن هناك مشكلة ما، حيث لاحظنا ظهور بعض أخطاء 403 أثناء تنفيذ هذه العملية. بعد فحص الأمر قليلاً، وجدت أن رسالة الخطأ التي أعادها استدعاء API هي:

{
    "http_code": 403,
    "body": "{\"deleted\":false,\"message\":\"User XXX has 0 posts, so they can't be deleted.\"}"
}

لكن، إذا كان عدد المنشورات صفرًا، فيجب أن يكون من الممكن حذف الحساب؟ عند النظر إلى معلومات هذا الحساب تحديدًا، نجد بالفعل أنه لا يحتوي على أي منشورات:

ومع ذلك، توجد رسالة خاصة مرسلة إلى Discobot (دليل تعليمي).

لذا، أعتقد أن هناك عدة نقاط هنا:

  1. رسالة الخطأ التي رفضت حذف المستخدم تحسب فقط المنشورات العامة، ولكن ربما ينبغي أن تحسب الرسائل الخاصة أيضًا؟
  2. في الواقع، هل يجب أن تمنع الرسائل الخاصة حذف الحساب؟ أفهم المنطق وراء أن حذف الحساب يعقد السرد في موضوع عام، لكن في حالة الرسائل الخاصة، ربما لا يكون هذا الحجة قوية بنفس القدر؟
  3. إذا كانت الإجابة على السؤال السابق لا تزال بنعم (أي أن الرسائل الخاصة يجب أن تمنع حذف الحساب)، فهل يجب أن تُحتسب الرسائل المرسلة إلى Discobot أيضًا في منع حذف الحساب؟ ما أعنيه هو أن معظم الأشخاص سيمرون بالدليل التعليمي ويرسلون رسائل خاصة إلى Discobot… مما يجعل من المستحيل عمليًا حذف العديد من الحسابات التي لم تشارك في المناقشات، فقط لأنها أجرت الدليل التعليمي (ربما يكون هذا صحيحًا فقط بعد مرور delete_user_max_post_age يومًا، ولكن لا يزال).

أخيرًا، ولست متأكدًا مما إذا كان هذا مرتبطًا بالنقطة 1، ولكن عند التحقق من معلومات API الخاصة بهذا المستخدم، يتم إرجاع:
post_count: 0
can_be_deleted: 1
can_delete_all_posts: 0

لكن، في الواقع، لا يمكن حذف هذا المستخدم. لذا ربما تكون منطقية can_be_deleted تحسب فقط المنشورات العامة أيضًا؟

4 إعجابات

عمل رائع في التحقيق! يجب أن نصلح رسالة الخطأ على الأقل.

"body": "{\"deleted\":false,\"message\":\"المستخدم XXX لديه 0 منشورات، لذا لا يمكن حذفه.\"}"

يجب أن تنص على:

المستخدم لديه x منشورًا (منشورات)، لذا لا يمكن حذفه.

يجب أن نلمح أيضًا إلى الموقف نظرًا لأن هذا الأمر قد تكرر كثيرًا:

المستخدم لديه x منشورًا (منشورات)، سواء كانت منشورات عامة أو رسائل شخصية، لذا لا يمكن حذفه.

3 إعجابات

تم ذلك. كما قمت بإصلاح عدد المشاركات غير الصحيح في الرسالة.

4 إعجابات

شكرًا لك @vinothkannans! :+1:

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

إعجابَين (2)

هل قد تكون المشكلة المذكورة في الموضوع التالي مرتبطة بأي شكل من الأشكال بالمشكلات التي تُناقش في هذا الموضوع؟

إعجابَين (2)

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم يعد السماح بردود جديدة.