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]
|
on: [push, delete]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
to_gitlab:
|
to_codeberg:
|
||||||
if: github.repository_owner == 'neodb-social'
|
if: github.repository_owner == 'neodb-social'
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
from django.db.models import Count
|
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.shortcuts import get_object_or_404, redirect, render
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
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)
|
return redirect(f"/{item_path}/{item_uuid}", permanent=True)
|
||||||
|
|
||||||
|
|
||||||
@require_http_methods(["GET"])
|
@require_http_methods(["GET", "HEAD"])
|
||||||
@xframe_options_exempt
|
@xframe_options_exempt
|
||||||
def embed(request, item_path, item_uuid):
|
def embed(request, item_path, item_uuid):
|
||||||
item = Item.get_by_url(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(
|
focus_item = get_object_or_404(
|
||||||
Item, uid=get_uuid_or_404(request.GET.get("focus"))
|
Item, uid=get_uuid_or_404(request.GET.get("focus"))
|
||||||
)
|
)
|
||||||
|
if request.method == "HEAD":
|
||||||
|
return HttpResponse()
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"embed_" + item.class_name + ".html",
|
"embed_" + item.class_name + ".html",
|
||||||
|
@ -81,6 +83,8 @@ def retrieve(request, item_path, item_uuid):
|
||||||
return redirect(item.merged_to_item.url)
|
return redirect(item.merged_to_item.url)
|
||||||
if not skipcheck and item.is_deleted:
|
if not skipcheck and item.is_deleted:
|
||||||
raise Http404(_("Item no longer exists"))
|
raise Http404(_("Item no longer exists"))
|
||||||
|
if request.method == "HEAD":
|
||||||
|
return HttpResponse()
|
||||||
if request.headers.get("Accept", "").endswith("json"):
|
if request.headers.get("Accept", "").endswith("json"):
|
||||||
return JsonResponse(item.ap_object)
|
return JsonResponse(item.ap_object)
|
||||||
focus_item = None
|
focus_item = None
|
||||||
|
|
|
@ -2,6 +2,7 @@ import datetime
|
||||||
from urllib.parse import quote_plus
|
from urllib.parse import quote_plus
|
||||||
|
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.views.decorators.http import require_http_methods
|
from django.views.decorators.http import require_http_methods
|
||||||
|
|
||||||
|
@ -17,9 +18,11 @@ from ..forms import *
|
||||||
from ..models import *
|
from ..models import *
|
||||||
|
|
||||||
|
|
||||||
@require_http_methods(["GET"])
|
@require_http_methods(["GET", "HEAD"])
|
||||||
@profile_identity_required
|
@profile_identity_required
|
||||||
def profile(request: AuthedHttpRequest, user_name):
|
def profile(request: AuthedHttpRequest, user_name):
|
||||||
|
if request.method == "HEAD":
|
||||||
|
return HttpResponse()
|
||||||
target = request.target_identity
|
target = request.target_identity
|
||||||
anonymous = not request.user.is_authenticated
|
anonymous = not request.user.is_authenticated
|
||||||
if anonymous and (not target.local or not target.anonymous_viewable):
|
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