Now persist actors in database during auth

This commit is contained in:
Eliot Berriot 2018-04-03 23:25:22 +02:00
parent 657bd4b01a
commit 81e7f03f77
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
2 changed files with 5 additions and 3 deletions

View File

@ -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,

View File

@ -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)