handle HEAD when needed
This commit is contained in:
parent
3ff6e65c03
commit
928914fd1f
4 changed files with 12 additions and 5 deletions
2
.github/workflows/mirror.yml
vendored
2
.github/workflows/mirror.yml
vendored
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Add table
Reference in a new issue