From 81e7f03f7757f31cba0803cc089d555f56318a90 Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Tue, 3 Apr 2018 23:25:22 +0200 Subject: [PATCH] Now persist actors in database during auth --- api/funkwhale_api/federation/actors.py | 2 -- api/funkwhale_api/federation/authentication.py | 6 +++++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/api/funkwhale_api/federation/actors.py b/api/funkwhale_api/federation/actors.py index 22b231e0..d70ce23e 100644 --- a/api/funkwhale_api/federation/actors.py +++ b/api/funkwhale_api/federation/actors.py @@ -255,8 +255,6 @@ class TestActor(SystemActor): accept, to=[ac['actor']], on_behalf_of=test_actor) - # we persist the sender in database - sender.save() models.Follow.objects.get_or_create( actor=sender, target=test_actor, diff --git a/api/funkwhale_api/federation/authentication.py b/api/funkwhale_api/federation/authentication.py index e199ef13..f2926bb3 100644 --- a/api/funkwhale_api/federation/authentication.py +++ b/api/funkwhale_api/federation/authentication.py @@ -7,6 +7,7 @@ from rest_framework import exceptions from . import actors from . import keys +from . import models from . import serializers from . import signing from . import utils @@ -42,7 +43,10 @@ class SignatureAuthentication(authentication.BaseAuthentication): except cryptography.exceptions.InvalidSignature: raise exceptions.AuthenticationFailed('Invalid signature') - return serializer.build() + try: + return models.Actor.objects.get(url=actor_data['id']) + except models.Actor.DoesNotExist: + return serializer.save() def authenticate(self, request): setattr(request, 'actor', None) -- GitLab