Exemplo n.º 1
0
    def test_user_allowed_when_no_device_and_if_configured_returns_true(self, rf, user):
        with override_settings(WAGTAIL_2FA_REQUIRED=True):
            request = rf.get("/admin/")
            request.user = user
            middleware = _OTPMiddleware()
            user = middleware._verify_user(request, user)
            assert not user_has_device(user)
            assert user.is_authenticated

            mixin = OtpRequiredMixin()
            mixin.if_configured = True
            result = mixin.user_allowed(user)
            assert result is True
Exemplo n.º 2
0
def verified_user(django_user_model, rf):
    """Create a user and verify it using the OTP middleware. Add a device
    to complete the verification for the user."""
    from django_otp.plugins.otp_totp.models import TOTPDevice
    from django_otp.middleware import OTPMiddleware as _OTPMiddleware
    user = django_user_model.objects.create(username='******')
    device = TOTPDevice.objects.create(user=user, confirmed=True)
    request = rf.get('/foo/')
    request.user = user
    middleware = _OTPMiddleware()
    user = middleware._verify_user(request, user)
    user.otp_device = device
    return user
Exemplo n.º 3
0
    def test_remove_menu_if_unverified(self, user, rf):
        with override_settings(WAGTAIL_2FA_REQUIRED=True):
            request = rf.get('/cms/')
            request.user = user
            middleware = _OTPMiddleware()
            user = middleware._verify_user(request, user)
            assert not user_has_device(user)
            assert user.is_authenticated

            menu_items = [
                MenuItem("Dummy item 1", "/stub1/"),
                MenuItem("Dummy item 2", "/stub2/"),
                MenuItem("Dummy item 3", "/stub3/")
            ]

            remove_menu_if_unverified(request, menu_items)

            assert len(menu_items) == 1
            assert menu_items[0].label == "2FA Setup"
            assert menu_items[0].url == "/cms/2fa/devices/1"