نستخدم المصادقة الموحدة (SSO) لتسجيل الدخول وإنشاء الحسابات. لا توجد طريقة أخرى لتسجيل الدخول أو الاشتراك في منتدانا.
ومع ذلك، تحتوي قائمة عناوين IP المحجوبة على عشرات العناوين التي تتم إضافتها تلقائيًا يوميًا. هل هذا متوقع؟ وما الذي يجعل عنوان IP يُضاف إلى قائمة عناوين IP المحجوبة؟
… لأنني أستطيع أن أخبرك بحزم أنه إذا كنت ترى عناوين IP تُضاف إلى قائمة الفحص بعد الحذف، فأنت بالتأكيد تحذف المستخدم كمُخرب، أي الزر الأوسط — احذف واحظر.
لقد قمت بذلك بالفعل، ونقطة نهاية واجهة برمجة التطبيقات الخاصة بالحذف هي التي كنت أستخدمها، وهي نفسها لكلتا العمليتين (الحذف فقط، والحذف مع الحظر) — الفرق الوحيد يكمن في المعاملات المستخدمة معها (block_ip، block_email، …) والتي ذكرتها أعلاه.
أعتقد أنني فهمت أخيرًا ما كانت المشكلة في طلبياتي: تطلب واجهة برمجة تطبيقات Discourse السلاسل النصية ‘true’ و’false’ بدلاً من القيم الصحيحة/الخاطئة (truthy/falsy). خطئي أنا لعدم ملاحظتي للإشارة إلى ذلك في التوثيق.
بعد تصحيح معاملات “truthy”/“falsy” إلى سلاسل “true”/“false”، ما زلتُ أرى إدخال عناصر إلى قائمة “Screened IPs” و"Screened Emails" عند حذف المستخدمين.
إليك سجلات Rails لاستدعاء API:
Started DELETE "/admin/users/9553.json" for 123.123.123.123 at 2021-06-10 00:01:21 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"delete_posts"=>"false", "block_email"=>"false", "blocked_urls"=>"false", "block_ip"=>"false", "id"=>"9553"}
Can't verify CSRF token authenticity.
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 8ms (Views: 1.4ms | ActiveRecord: 0.0ms | Allocations: 2301)
وهذا الطلب عند تنفيذه عبر واجهة الويب بدلاً من استدعاء API:
Started DELETE "/admin/users/49.json" for 123.123.123.123 at 2021-06-10 08:24:47 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"context"=>"/admin/users/49/XXX", "delete_posts"=>"true", "id"=>"49"}
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 23ms (Views: 4.7ms | ActiveRecord: 0.0ms | Allocations: 1778)
إذن، بعد بعض الاختبارات، يبدو أن معاملات نقطة النهاية API /admin/users/{id}.jsonتُفسَّر دائمًا على أنها true عند وجودها، بغض النظر عما إذا كانت مُعيّنة فعليًا إلى ‘true’ أم ‘false’؟
عندما بدأتُ في تعيين المعاملات التي قيمتها ‘true’ فقط وتجاوز تلك التي قيمتها ‘false’، لم يعد يتم إضافة أي عناصر إلى قائمة “Screened IPs”/“Screened Emails”.
هل هذا هو السلوك المقصود؟ هذا لا يتوافق مع فهمي المستمد من التوثيق.