دعوة المستخدم المحذوف مرة أخرى

ربما هذه حالة هامشية، لكن أثناء اختبار نقطة نهاية API (/invites.json)، يعمل كل شيء بشكل جيد. ثم قمت بحذف المستخدم المدعو، والآن أحصل على استجابة 422 من تلك النقطة. باستخدام مستكشف البيانات، أرى أن المستخدم لم يعد موجودًا، لكن الدعوة ما زالت مدرجة في جدول الدعوات.

هل من الممكن دعوة مستخدم بعنوان بريد إلكتروني تم حذفه سابقًا؟

4 إعجابات

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

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

شكرًا لك! نعم، قبلت الدعوة ثم قمت بحذف الحساب.

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

حسناً، لم أتمكن من تكرار الطريقة التي وصفتها إلا إذا كنت أساءت فهم شيء ما فيما تتطلع إلى تحقيقه (وهو أمر ممكن تماماً). قد يكون من المفيد لو شرحت ما كنت تتوقع رؤيته مقابل ما تراه فعلياً.

لكنني أستخدم:

الإصدار: 2.7.0beta7
نظام التشغيل: Ubuntu 20.04.1 LTS

وقمت بالخطوات التالية:

  • دعوة مستخدم بعنوان بريد إلكتروني محدد من واجهة المستخدم: إدارة > مستخدمون > إرسال الدعوات
    • قمت بدعوة المستخدم واختيار خيار تقييد الدعوة إلى عنوان بريد إلكتروني محدد
  • قبلت الدعوة من عنوان البريد الإلكتروني المحدد في نافذة متصفح خفية منفصلة
  • كمسؤول في النافذة الأصلية، قمت بحذف المستخدم الذي تم تسجيله حديثاً
  • استخدمت Postman لإرسال طلب GET إلى https://example.dev/u/my-dev-user/invited.json
    • هل هذا هو نقطة النهاية التي كنت تستخدمها؟ لقد ذكرت /invites.json لكنني أحصل على خطأ 404 عند استخدامه بغض النظر، لست متأكداً تماماً من وجوده.
  • تلقيت الاستجابة التالية بعد حذف المستخدم، وهو ما كنت أتوقعه نظراً لأنني حذفت المستخدم: لا توجد دعوات معلقة، ولا تم استبدال أي منها، ولا توجد دعوات منتهية الصلاحية:
{
    "invites": [],
    "can_see_invite_details": true,
    "counts": {
        "pending": 0,
        "expired": 0,
        "redeemed": 0,
        "total": 0
    }
}

يجب أن يكون ذلك ممكناً - لقد قمت بإعادة دعوة نفس البريد الإلكتروني الذي حذفته أعلاه دون أي مشكلة.

إعجابَين (2)

آسف، كان يجب أن أحدد نقطة النهاية. Discourse API Docs

الخطوات التي اتبعتها كانت:

  • دعوة المستخدم عبر نقطة النهاية POST Discourse API Docs
  • قبول الدعوة عبر البريد الإلكتروني
  • تسجيل الدخول كمسؤول وحذف المستخدم
  • محاولة دعوة المستخدم مرة أخرى عبر الخطوة 1. هذه المرة حصلت على استجابة 422 مع الخطأ: ```
    {
    “failed”: “FAILED”
    }
إعجابَين (2)

أهلاً، وبمجرد المتابعة، فإن الدعوة تعمل عبر واجهة المسؤول كما وصفت، لكنها لا تعمل عبر نقطة النهاية POST التي أستخدمها.

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

أوه، فهمت الآن، الأمر واضح - نعم، أستطيع تكرار هذه المشكلة الآن.

أستطيع إرسال دعوات عادية إلى عناوين بريد إلكتروني جديدة تمامًا عبر الـ API باستخدام طلب POST:
أتلقى الاستجابة التالية كما هو متوقع:

الطلب: https://example.dev/invites.json?email=example%2Bsomething@hey.com
الاستجابة الفعلية

{
    "id": 7,
    "invite_key": "inviteKEY",
    "link": "https://example.dev/invites/inviteKEY",
    "email": "example+something@hey.com",
    "emailed": true,
    "custom_message": null,
    "created_at": "2021-04-26T23:57:08.602Z",
    "updated_at": "2021-04-26T23:57:08.602Z",
    "expires_at": "2021-05-26T23:57:08.594Z",
    "expired": false,
    "topics": [],
    "groups": []
}
  • ثم أقوم بتسجيل الدخول من جهاز آخر وقبول الدعوة لهذا المستخدم.
  • بعد ذلك أعود لتسجيل الدخول بصفتي المشرف & أحذف المستخدم الذي يحمل البريد الإلكتروني: example+something@hey.com
  • بعد ذلك أعيد إرسال نفس طلب POST إلى الـ API لدعوة هذا المستخدم مرة أخرى

الطلب: https://example.dev/invites.json?email=example%2Bsomething@hey.com
الاستجابة المتوقعة

{
    "id": 8,
    "invite_key": "newinviteKEY",
    "link": "https://example.dev/invites/newinviteKEY",
    "email": "example+something@hey.com",
    "emailed": true,
    "custom_message": null,
    "created_at": "2021-04-26T23:59:08.602Z",
    "updated_at": "2021-04-26T23:59:08.602Z",
    "expires_at": "2021-05-26T23:59:08.594Z",
    "expired": false,
    "topics": [],
    "groups": []
}

الاستجابة الفعلية

{
    "failed": "FAILED"
}
3 إعجابات

أهلاً، جيد أنه لم يكن الأمر خاصاً بي فقط :slight_smile: لذا، أنا جديد في هذا، هل يتم الإبلاغ عن هذا كخطأ الآن أم أن هناك مكاناً آخر للنشر فيه، مثل GitHub؟

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

إذا فهمتُ الأمر بشكل صحيح، فيجب أن يُعتبر هذا التقرير! وبما أننا اثنان، أعتقد أننا قد أوفينا في الغالب بـ معايير تقرير الخطأ

& ثم نأمل أن يخبرنا شخص قادر على تقديم شرح أو حل بديل و/أو إصلاح بما يجب علينا فعله.

6 إعجابات

@hcw-rohan @weallwegot تم إصلاح هذه المشكلة في #12927.

مرحبًا،

أعتقد أنه ربما تم التراجع عن إصلاح الخطأ أو أنه لم يعد يعمل، حيث واجهت هذا الخطأ اليوم. اتبعت الخطوات التالية لتحديد المشكلة:

  • حذفت مستخدمًا من لوحة الإدارة
  • أرسلت دعوة للمستخدم عبر واجهة برمجة التطبيقات (API)
  • حصلت على رسالة فشل

  • حذفت الدعوات المعلقة للمستخدم المحذوف

  • أرسلت دعوة للمستخدم المحذوف عبر واجهة برمجة التطبيقات (API)

  • حصلت على رسالة نجاح

  • استلمت الدعوة، ولكن عند النقر عليها، ظهرت تحذير: “عذرًا! هذه الدعوة مخصصة للمستخدمين الجدد الذين لا يملكون حسابًا موجودًا مسبقًا.”

  • لا يمكن لواجهة برمجة التطبيقات (API) ولا لوحة الإدارة العثور على المستخدم المحذوف

  • أخيرًا، حاولت فتح رابط الدعوة في نافذة تصفح خاصة، وتمكنت حينها من تسجيل الدخول كمستخدم جديد - ربما تكون المشكلة متعلقة بملفات تعريف الارتباط (الكوكيز)؟

  • حاولت إضافة مستخدم جديد عبر واجهة برمجة التطبيقات (API)

  • حصلت على رسالة نجاح

آمل أن يكون هذا مفيدًا.

مرحبًا غريغ،

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

هل أنت متأكد من أنك لم تكن مسجل الدخول عند الوصول إلى صفحة الدعوة؟ هناك مسار كود واحد يعرض هذه الرسالة، ولا أرى أي مشاكل واضحة.