From f88efa40d497995a5f645d03f99345c804f808d7 Mon Sep 17 00:00:00 2001 From: Michael Manfre Date: Tue, 22 Nov 2022 23:53:02 -0500 Subject: Code dedupe Webfinger and fix SystemActor inbox URL --- users/views/activitypub.py | 67 +++++++++++++++++----------------------------- 1 file changed, 25 insertions(+), 42 deletions(-) (limited to 'users/views') diff --git a/users/views/activitypub.py b/users/views/activitypub.py index 1ca80a1..2c7020a 100644 --- a/users/views/activitypub.py +++ b/users/views/activitypub.py @@ -99,51 +99,34 @@ class Webfinger(View): if not resource.startswith("acct:"): return HttpResponseBadRequest("Not an account resource") handle = resource[5:] + if handle.startswith("__system__@"): # They are trying to webfinger the system actor - system_actor = SystemActor() - return JsonResponse( - { - "subject": f"acct:{handle}", - "aliases": [ - system_actor.profile_uri, - ], - "links": [ - { - "rel": "http://webfinger.net/rel/profile-page", - "type": "text/html", - "href": system_actor.profile_uri, - }, - { - "rel": "self", - "type": "application/activity+json", - "href": system_actor.actor_uri, - }, - ], - } - ) + actor = SystemActor() else: - identity = by_handle_or_404(request, handle) - return JsonResponse( - { - "subject": f"acct:{identity.handle}", - "aliases": [ - identity.absolute_profile_uri(), - ], - "links": [ - { - "rel": "http://webfinger.net/rel/profile-page", - "type": "text/html", - "href": identity.absolute_profile_uri(), - }, - { - "rel": "self", - "type": "application/activity+json", - "href": identity.actor_uri, - }, - ], - } - ) + actor = by_handle_or_404(request, handle) + handle = actor.handle + + return JsonResponse( + { + "subject": f"acct:{handle}", + "aliases": [ + actor.absolute_profile_uri(), + ], + "links": [ + { + "rel": "http://webfinger.net/rel/profile-page", + "type": "text/html", + "href": actor.absolute_profile_uri(), + }, + { + "rel": "self", + "type": "application/activity+json", + "href": actor.actor_uri, + }, + ], + } + ) @method_decorator(csrf_exempt, name="dispatch") -- cgit v1.2.3