cleanup: trim bloated multi-line comments across the project
This commit is contained in:
@@ -58,11 +58,7 @@ class FamilyLinkAcceptThrottleTests(TestCase):
|
||||
self.assertEqual(blocked_response.status_code, 429)
|
||||
|
||||
def test_throttle_is_scoped_per_user_not_shared_globally(self):
|
||||
# این تست مخصوصِ کاربرهای *غیرمهمان* (ثبتنامشده) است — طبقِ فیکسِ
|
||||
# GuestAwareFamilyThrottle، حسابهای مهمان دیگه bucket جداگانه
|
||||
# ندارن (نگاه کنید به FamilyLinkAcceptGuestThrottleBypassTests پایینتر)،
|
||||
# اما رفتارِ per-user برای کاربرهایِ ثبتنامشده باید دقیقاً مثلِ
|
||||
# قبل دستنخورده بمونه.
|
||||
# کاربرِ غیرمهمان (نه یک حسابِ مهمانِ دوم، که دیگه bucket جدا نداره).
|
||||
other_user = User.objects.create(
|
||||
is_guest=False, name='', phone='+989120000099',
|
||||
)
|
||||
@@ -241,12 +237,8 @@ class FamilyLinkInviteThrottleTests(TestCase):
|
||||
self.assertEqual(blocked_response.status_code, 429)
|
||||
|
||||
def test_changing_client_ip_does_not_bypass_the_user_limit(self):
|
||||
# ⚠️ توجه: از یک کاربرِ *غیرمهمان* استفاده میشه (نه self.parent که
|
||||
# مهمان است)، چون طبقِ فیکسِ GuestAwareFamilyThrottle حالا کلیدِ
|
||||
# bucket برای کاربرهای مهمان عمداً بر اساسِ IP است (نگاه کنید به
|
||||
# FamilyLinkInviteGuestThrottleBypassTests پایینتر) — این تست
|
||||
# فقط رفتارِ per-user (نه IP) برای کاربرهایِ ثبتنامشده رو تضمین
|
||||
# میکنه.
|
||||
# کاربرِ غیرمهمان (نه self.parent که مهمانه)، چون کلیدِ throttleِ
|
||||
# مهمانها عمداً بر اساسِ IP است؛ این تست فقط رفتارِ per-user رو میسنجه.
|
||||
registered_parent = User.objects.create(is_guest=False, name='', phone='+989120001300')
|
||||
registered_token = issue_access_token(registered_parent.id)
|
||||
|
||||
|
||||
@@ -67,17 +67,10 @@ class FamilyLinkInviteView(APIView):
|
||||
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
# ⚠️ اضافه شده: این endpoint قبلاً هیچ throttle مخصوصی نداشت، درحالیکه
|
||||
# یک FamilyLink ماندگار میسازه و یک کدِ دعوتِ ۶رقمیِ تازه تولید میکنه.
|
||||
# بدونِ throttle، یک کاربرِ احرازهویتشده میتونست با فرستادنِ
|
||||
# پیدرپیِ شمارههای مختلف، تعدادِ زیادی FamilyLink/کدِ دعوت بسازه.
|
||||
# طبقِ همون الگویِ GuestAwareFamilyThrottleِ مشترک (که
|
||||
# FamilyLinkAcceptView هم استفاده میکنه): برای کاربرهای مهمان کلید
|
||||
# بر اساسِ IP و برای کاربرهای غیرمهمان بر اساسِ user.pk است، پس
|
||||
# چرخشِ حسابِ مهمان نمیتونه bucket تازه بگیره. یک throttle_scope
|
||||
# مجزا ('family_invite_create'، نه 'family_invite_accept') استفاده
|
||||
# شده چون تولید و مصرفِ کدِ دعوت باید مستقل از هم قابلتنظیم بمونن؛
|
||||
# منطقِ generation/authorization دستنخوردهست.
|
||||
# بدونِ throttle، یک کاربر میتونست با فرستادنِ پیدرپیِ شمارههای مختلف
|
||||
# تعدادِ زیادی FamilyLink بسازه. GuestAwareFamilyThrottle برای مهمانها
|
||||
# کلید رو بر اساسِ IP میسازه؛ scopeِ جدا از family_invite_accept چون
|
||||
# تولید و مصرفِ کدِ دعوت باید مستقل قابلتنظیم باشن.
|
||||
throttle_scope = 'family_invite_create'
|
||||
throttle_classes = [GuestAwareFamilyThrottle]
|
||||
|
||||
@@ -131,15 +124,9 @@ class FamilyLinkAcceptView(APIView):
|
||||
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
# ⚠️ اضافه شده: inviteCode یک رازِ عددیِ ۶رقمی تولیدشدهی سرور است
|
||||
# (family/views.py::FamilyLinkInviteView)، و این endpoint دقیقاً همون
|
||||
# کد رو با select_for_update() جستوجو میکنه؛ بدونِ throttle، یک
|
||||
# کاربرِ احرازهویتشده میتونست بدونِ هیچ محدودیتی فضای ۶رقمی رو
|
||||
# brute-force کنه. طبقِ همون الگویِ ScopedRateThrottle که برای بقیهی
|
||||
# اندپوینتهایِ حدسپذیر پروژه اضافه شد، اینجا هم یک scope مجزا اضافه
|
||||
# شد (نه scope مشترک با discount/offer) تا نرخِ محدودسازی مستقل از اونها
|
||||
# قابلتنظیم باشه. چون DRF throttle check قبل از dispatch به post() در
|
||||
# APIView.initial() اجرا میشه، حدسهای بلاکشده اصلاً به select_for_update()
|
||||
# inviteCode یک رازِ عددیِ ۶رقمیه؛ بدونِ throttle یه کاربر میتونست فضای
|
||||
# ۶رقمی رو brute-force کنه. throttle در APIView.initial() قبل از
|
||||
# post() اجرا میشه، پس حدسهای بلاکشده اصلاً به select_for_update()
|
||||
# نمیرسن.
|
||||
throttle_scope = 'family_invite_accept'
|
||||
throttle_classes = [GuestAwareFamilyThrottle]
|
||||
|
||||
Reference in New Issue
Block a user