UNLOCK_ALL_PHONES: tester accounts see every island unlocked (map and server rule)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -806,6 +806,28 @@ def _parse_test_login_phones(raw: str) -> dict[str, str]:
|
||||
|
||||
TEST_LOGIN_PHONES = _parse_test_login_phones(os.environ.get('TEST_LOGIN_PHONES', ''))
|
||||
|
||||
# شمارههای آزمونگر: برای این کاربرها هیچ جزیرهای روی نقشه قفل نیست (قفلِ «جزیرهی قبلی را تمام کن»).
|
||||
# فقط قفلِ ترتیب را برمیدارد؛ اشتراکِ فصلها، قلب و سقفِ دستیار همان قواعدِ عادیاند و برای آزمونگر
|
||||
# با یک ردیفِ Subscription در ادمین داده میشود. چرا env و نه فیلدِ کاربر: تیمِ تست عوض میشود و
|
||||
# نباید برای هر نفر migration یا دسترسیِ ادمین لازم باشد؛ چرا نه DEBUG: روی سرورِ واقعی لازم است.
|
||||
# شمارهی نامعتبر راهاندازی را میشکند (بیصدا نادیده گرفته نمیشود).
|
||||
def _parse_unlock_all_phones(raw: str) -> frozenset:
|
||||
from accounts.phone import normalize_phone
|
||||
|
||||
phones = set()
|
||||
for item in raw.split(','):
|
||||
item = item.strip()
|
||||
if not item:
|
||||
continue
|
||||
normalized = normalize_phone(item)
|
||||
if normalized is None:
|
||||
raise ImproperlyConfigured(f'UNLOCK_ALL_PHONES شمارهی موبایلِ ایران نیست: «{item}».')
|
||||
phones.add(normalized)
|
||||
return frozenset(phones)
|
||||
|
||||
|
||||
UNLOCK_ALL_PHONES = _parse_unlock_all_phones(os.environ.get('UNLOCK_ALL_PHONES', ''))
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# OTP SMS delivery (accounts/services.py: send_otp_sms)
|
||||
# -----------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user