مشاكل مستوى الثقة، المستوى الأول لا يتجاوز المستوى صفر

بشكل عام، أقوم بتجربة مستويات الثقة. مع مستوى الثقة 0، قمت بإعداد النظام بحيث يمكنك نشر منشور واحد فقط كل 24 ساعة. كما قمت بإعداد Patreon بحيث إذا أصبحت داعمًا، فستحصل تلقائيًا على مستوى ثقة 1، مما يعني عدم وجود قيود على النشر. لذا قمت بتجربة ذلك، وأنشأت مستخدمًا جديدًا اشترك في Patreon، وتم بنجاح إضافته إلى مجموعة الداعمين التي تمنح مستوى ثقة 1. ومع ذلك، عندما أحاول جعل هذا المستخدم ينشر الآن، لا يزال يسمح لي بنشر منشور واحد فقط كل 24 ساعة. لماذا يحدث هذا؟ لماذا لا يتجاوز مستوى الثقة 1 قيود مستوى الثقة 0 لهذا المستخدم؟

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

لقد جربت ذلك للتو ولا يزال الأمر لا يعمل.

دعني أعود قليلاً إلى الوراء. يبدو أن باتريون قد عيّن هذا المستخدم لمستوى ثقة 1. في الصورة التي نشرتها، يظهر أن مستوى ثقة المستخدم هو “1 - مستخدم أساسي”، وقد تغير من “0 - مستخدم جديد” بمجرد التسجيل عبر باتريون.

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

أيضًا، لاحظ أنني قمت بتعيين rate limit new user create topic إلى 86400 بحيث يمكن للمستخدمين من مستوى tl0 النشر مرة واحدة فقط كل 24 ساعة. هل هذا هو المكان الذي أخطأت فيه؟ هل من الممكن أن ينطبق هذا أيضًا على مستخدمي tl1؟

هذا سيكون سبب المشكلة. حد المعدل المطبق من خلال هذا الإعداد يُطبّق على المستخدمين من مستوى الثقة 0 وأيضًا على المستخدمين من مستوى الثقة 1 الذين موجودون في الموقع منذ أقل من 24 ساعة.

هل تقصد إذن أن هذه مشكلة تتعلق بوقت الـ 24 ساعة عبر جميع مستويات الثقة؟

على سبيل المثال، ماذا لو قمت بترقية مجموعة Patreon إلى مستوى ثقة 2، أو 3، أو حتى 4. هل سيتجاوز ذلك حد المعدل؟

لا، يتم تطبيق الحد على المستخدمين من مستوى الثقة 0 طالما أنهم في هذا المستوى. أما بالنسبة لمستخدمي مستوى الثقة 1، فيُطبق الحد خلال أول 24 ساعة لهم في الموقع. ولا يُطبق الحد على مستخدمين مستوى الثقة 2. فإذا منحت مستوى الثقة 2 لأعضاء مجموعة رعاتك، فسيتم تجاوزهم للحد.

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

def new_user?
  (created_at >= 24.hours.ago || trust_level == TrustLevel[0]) &&
    trust_level < TrustLevel[2] &&
    !staff?
end