handle HEAD when needed

This commit is contained in:
mein Name 2025-02-28 20:57:56 -05:00 committed by Henri Dickson
parent 3ff6e65c03
commit 928914fd1f
4 changed files with 12 additions and 5 deletions

View file

@ -3,7 +3,7 @@ name: Mirror to Codeberg
on: [push, delete]
jobs:
to_gitlab:
to_codeberg:
if: github.repository_owner == 'neodb-social'
runs-on: ubuntu-latest
steps:

View file

@ -1,7 +1,7 @@
from django.contrib.auth.decorators import login_required
from django.core.cache import cache
from django.db.models import Count
from django.http import Http404, JsonResponse
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404, redirect, render
from django.urls import reverse
from django.utils import timezone
@ -44,7 +44,7 @@ def retrieve_redirect(request, item_path, item_uuid):
return redirect(f"/{item_path}/{item_uuid}", permanent=True)
@require_http_methods(["GET"])
@require_http_methods(["GET", "HEAD"])
@xframe_options_exempt
def embed(request, item_path, item_uuid):
item = Item.get_by_url(item_uuid)
@ -59,6 +59,8 @@ def embed(request, item_path, item_uuid):
focus_item = get_object_or_404(
Item, uid=get_uuid_or_404(request.GET.get("focus"))
)
if request.method == "HEAD":
return HttpResponse()
return render(
request,
"embed_" + item.class_name + ".html",
@ -81,6 +83,8 @@ def retrieve(request, item_path, item_uuid):
return redirect(item.merged_to_item.url)
if not skipcheck and item.is_deleted:
raise Http404(_("Item no longer exists"))
if request.method == "HEAD":
return HttpResponse()
if request.headers.get("Accept", "").endswith("json"):
return JsonResponse(item.ap_object)
focus_item = None

View file

@ -2,6 +2,7 @@ import datetime
from urllib.parse import quote_plus
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
@ -17,9 +18,11 @@ from ..forms import *
from ..models import *
@require_http_methods(["GET"])
@require_http_methods(["GET", "HEAD"])
@profile_identity_required
def profile(request: AuthedHttpRequest, user_name):
if request.method == "HEAD":
return HttpResponse()
target = request.target_identity
anonymous = not request.user.is_authenticated
if anonymous and (not target.local or not target.anonymous_viewable):

@ -1 +1 @@
Subproject commit b783d46e5858e6fc8919a0b022b835a06634314c
Subproject commit 1f8f9d1e73eca349288db0d43708c8e205d1e338