"""Общие хелперы для тестов ACORE.""" def login_past_2fa(client, user): """force_login + прохождение обязательного 2FA-гейта (staff, HR, IT).""" from core.security import user_requires_mandatory_2fa client.force_login(user) if user_requires_mandatory_2fa(user) and not user.totp_enabled: user.totp_enabled = True user.save(update_fields=['totp_enabled']) session = client.session session['2fa_verified'] = True session.save() # Обратная совместимость с существующими тестами. login_2fa = login_past_2fa def grant_all_locations(user): """Явная область всей сети для тестов центральных операторов.""" from django.contrib.auth.models import Permission user.user_permissions.add(Permission.objects.get( content_type__app_label='locations', codename='view_all_locations', )) for key in ('_perm_cache', '_user_perm_cache', '_group_perm_cache'): user.__dict__.pop(key, None) return user