From f5e0f94e742b3f6964edb799b11c52a19b50b065 Mon Sep 17 00:00:00 2001 From: neodb dev Date: Mon, 25 Dec 2023 11:05:09 -0500 Subject: [PATCH] handle common url typos --- catalog/urls.py | 7 +++++++ catalog/views.py | 4 ++++ journal/views/profile.py | 2 ++ 3 files changed, 13 insertions(+) diff --git a/catalog/urls.py b/catalog/urls.py index 3e41ccf6..55f37be5 100644 --- a/catalog/urls.py +++ b/catalog/urls.py @@ -36,6 +36,13 @@ urlpatterns = [ retrieve, name="retrieve", ), + re_path( + r"^(?P" + + _get_all_url_paths() + + ")/(?P[A-Za-z0-9]{21,22})/$", + retrieve_redirect, + name="retrieve_redirect", + ), path("podcast//episodes", episode_data, name="episode_data"), path("catalog/create/", create, name="create"), re_path( diff --git a/catalog/views.py b/catalog/views.py index c7b32b77..566c1657 100644 --- a/catalog/views.py +++ b/catalog/views.py @@ -42,6 +42,10 @@ def retrieve_by_uuid(request, item_uid): return redirect(item.url) +def retrieve_redirect(request, item_path, item_uuid): + return redirect(f"/{item_path}/{item_uuid}") + + @xframe_options_exempt def embed(request, item_path, item_uuid): if request.method != "GET": diff --git a/journal/views/profile.py b/journal/views/profile.py index 647b542d..b584a852 100644 --- a/journal/views/profile.py +++ b/journal/views/profile.py @@ -5,6 +5,7 @@ from django.core.exceptions import BadRequest, ObjectDoesNotExist, PermissionDen from django.http import Http404, HttpResponse, HttpResponseRedirect from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ +from django.views.decorators.http import require_http_methods from user_messages import api as msg from catalog.models import * @@ -17,6 +18,7 @@ from ..models import * from .common import render_list, target_identity_required +@require_http_methods(["GET"]) @target_identity_required def profile(request: AuthedHttpRequest, user_name): if request.method != "GET":