إشعارات "يجب الموافقة على المستخدمين" يتم تشغيلها بشكل خاطئ للمستخدمين القدامى.

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

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

بالنقر على الإشعار أرى:

هناك تسجيلات مستخدمين جديدة تنتظر الموافقة (أو الرفض) قبل أن يتمكنوا من الوصول إلى هذا المنتدى. يرجى مراجعتها.

… ولكن بالنقر على “يرجى مراجعتها” يظهر أنه لا يوجد أي منها:

لا توجد عناصر للمراجعة.

بالبحث في القائمة admin/users/list/new، أرى أن بعض المستخدمين مدرجون بالفعل على أنهم “غير موافق عليهم”. لا يمكنني العثور على أي شيء مشترك بين هؤلاء المستخدمين “غير الموافق عليهم” باستثناء حقيقة أن جميعهم تم إنشاؤهم قبل تبديل الإعداد. بعضهم لديهم “البريد الإلكتروني الأساسي: غير متحقق منه”، بينما البعض الآخر متحقق منه.

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

هل هناك طريقة سريعة لوضع علامة “موافق عليه” على كل مستخدم موجود؟ أو على الأقل منع إرسال الإشعارات حول هؤلاء المستخدمين القدامى؟

إعجابَين (2)

هل ما زلت تعاني من هذا؟

في النهاية، استجمعت شجاعتي وقمت بالتمرير عبر القائمة بأكملها للمستخدمين (بالبحث يدويًا عن أولئك الذين لديهم “معتمد: لا”)، ثم دخلت إلى ملف تعريف كل منهم ووافقت عليهم بشكل فردي :sweat:

إعجابَين (2)

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

كما أفهم الكود [1] عندما تقوم بتمكين ‘must_approve_users’، يجب الموافقة على معظم المستخدمين الذين تم إنشاؤهم قبل تمكين الإعداد:

نجح هذا مع معظم مستخدمي، ولكن لم يتم تمييز البعض على أنهم موافق عليهم.

استعلام مستكشف البيانات
SELECT
  id as UserID, approved
FROM
  users
ORDER BY id
UserID Approved
1 true
3 true
8 true
10 false
11 false
12 false
13 true

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

استعلام مستكشف البيانات
SELECT id, target_id, target_type
FROM reviewables
ORDER BY target_id
id target_id target_type
6 9 ChatMessage
7 10 ChatMessage
8 11 ChatMessage
9 12 ChatMessage
1 2901 Post
2 2909 Post
5 2991 Post

أعتقد أنها مشكلة أن المستخدمين لا تتم الموافقة عليهم عندما يكون هناك معرف هدف مطابق له نوع هدف غير ‘user’.


  1. ليس لدي سوى القليل من مهارات البرمجة ↩︎

3 إعجابات