Exemplo n.º 1
0
def handle_camo_url(request: HttpRequest, digest: str,
                    received_url: str) -> HttpResponse:
    original_url = bytes.fromhex(received_url).decode()
    if is_camo_url_valid(digest, original_url):
        return redirect(generate_thumbnail_url(original_url, is_camo_url=True))
    else:
        return HttpResponseForbidden("<p>Not a valid URL.</p>")
Exemplo n.º 2
0
Arquivo: camo.py Projeto: buyrs/demozy
def handle_camo_url(request: HttpRequest, digest: str, received_url: str) -> HttpResponse:
    if not settings.THUMBOR_SERVES_CAMO:
        return HttpResponseNotFound()

    original_url = bytes.fromhex(received_url).decode()
    if is_camo_url_valid(digest, original_url):
        return redirect(generate_thumbnail_url(original_url, is_camo_url=True))
    else:
        return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
Exemplo n.º 3
0
def backend_serve_thumbnail(
        request: HttpRequest,
        user_profile: UserProfile,
        url: str = REQ(),
        size_requested: str = REQ("size"),
) -> HttpResponse:
    if not validate_thumbnail_request(user_profile, url):
        return HttpResponseForbidden(
            _("<p>You are not authorized to view this file.</p>"))

    thumbnail_url = generate_thumbnail_url(url)
    return redirect(thumbnail_url)
Exemplo n.º 4
0
def handle_camo_url(request: HttpRequest, digest: str,
                    received_url: str) -> HttpResponse:
    if not settings.THUMBOR_SERVES_CAMO:
        return HttpResponseNotFound()

    hex_encoded_url = received_url.encode('utf-8')
    hex_decoded_url = codecs.decode(hex_encoded_url, 'hex')
    original_url = hex_decoded_url.decode('utf-8')  # type: ignore # https://github.com/python/typeshed/issues/300
    if is_camo_url_valid(digest, original_url):
        return redirect(generate_thumbnail_url(original_url, is_camo_url=True))
    else:
        return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
Exemplo n.º 5
0
def handle_camo_url(request: HttpRequest, digest: str,
                    received_url: str) -> HttpResponse:
    if not settings.THUMBOR_SERVES_CAMO:
        return HttpResponseNotFound()

    hex_encoded_url = received_url.encode('utf-8')
    hex_decoded_url = binascii.a2b_hex(hex_encoded_url)
    original_url = hex_decoded_url.decode('utf-8')
    if is_camo_url_valid(digest, original_url):
        return redirect(generate_thumbnail_url(original_url, is_camo_url=True))
    else:
        return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
Exemplo n.º 6
0
def handle_camo_url(request: HttpRequest, digest: str,
                    received_url: str) -> HttpResponse:
    if not settings.THUMBOR_SERVES_CAMO:
        return HttpResponseNotFound()

    hex_encoded_url = received_url.encode('utf-8')
    hex_decoded_url = codecs.decode(hex_encoded_url, 'hex')
    original_url = hex_decoded_url.decode(
        'utf-8'
    )  # type: ignore # https://github.com/python/typeshed/issues/300
    if is_camo_url_valid(digest, original_url):
        return redirect(generate_thumbnail_url(original_url, is_camo_url=True))
    else:
        return HttpResponseForbidden(_("<p>Not a valid URL.</p>"))
Exemplo n.º 7
0
def backend_serve_thumbnail(request: HttpRequest, user_profile: UserProfile,
                            url: str=REQ(), size_requested: str=REQ("size")) -> HttpResponse:
    if not validate_thumbnail_request(user_profile, url):
        return HttpResponseForbidden(_("<p>You are not authorized to view this file.</p>"))

    size = None
    if size_requested == 'thumbnail':
        size = '0x100'
    elif size_requested == 'full':
        size = '0x0'

    if size is None:
        return HttpResponseForbidden(_("<p>Invalid size.</p>"))

    thumbnail_url = generate_thumbnail_url(url, size)
    return redirect(thumbnail_url)
Exemplo n.º 8
0
def backend_serve_thumbnail(
        request: HttpRequest,
        maybe_user_profile: Union[UserProfile, AnonymousUser],
        url: str = REQ(),
        size_requested: str = REQ("size"),
) -> HttpResponse:
    if not maybe_user_profile.is_authenticated:
        realm = get_valid_realm_from_request(request)
    else:
        assert isinstance(maybe_user_profile, UserProfile)
        realm = maybe_user_profile.realm

    if not validate_thumbnail_request(realm, maybe_user_profile, url):
        return HttpResponseForbidden(
            _("<p>You are not authorized to view this file.</p>"))

    thumbnail_url = generate_thumbnail_url(url)
    return redirect(thumbnail_url)