Linting
This commit is contained in:
parent
d63f8f2e33
commit
4811f35eb5
|
@ -2,7 +2,7 @@ import cryptography
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from django.contrib.auth.models import AnonymousUser
|
from django.contrib.auth.models import AnonymousUser
|
||||||
from rest_framework import authentication, exceptions
|
from rest_framework import authentication, exceptions as rest_exceptions
|
||||||
|
|
||||||
from funkwhale_api.moderation import models as moderation_models
|
from funkwhale_api.moderation import models as moderation_models
|
||||||
from . import actors, exceptions, keys, signing, utils
|
from . import actors, exceptions, keys, signing, utils
|
||||||
|
@ -20,12 +20,12 @@ class SignatureAuthentication(authentication.BaseAuthentication):
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return
|
return
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
raise exceptions.AuthenticationFailed(str(e))
|
raise rest_exceptions.AuthenticationFailed(str(e))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
actor_url = key_id.split("#")[0]
|
actor_url = key_id.split("#")[0]
|
||||||
except (TypeError, IndexError, AttributeError):
|
except (TypeError, IndexError, AttributeError):
|
||||||
raise exceptions.AuthenticationFailed("Invalid key id")
|
raise rest_exceptions.AuthenticationFailed("Invalid key id")
|
||||||
|
|
||||||
policies = (
|
policies = (
|
||||||
moderation_models.InstancePolicy.objects.active()
|
moderation_models.InstancePolicy.objects.active()
|
||||||
|
@ -41,15 +41,15 @@ class SignatureAuthentication(authentication.BaseAuthentication):
|
||||||
logger.info(
|
logger.info(
|
||||||
"Discarding HTTP request from blocked actor/domain %s", actor_url
|
"Discarding HTTP request from blocked actor/domain %s", actor_url
|
||||||
)
|
)
|
||||||
raise exceptions.AuthenticationFailed(str(e))
|
raise rest_exceptions.AuthenticationFailed(str(e))
|
||||||
|
|
||||||
if not actor.public_key:
|
if not actor.public_key:
|
||||||
raise exceptions.AuthenticationFailed("No public key found")
|
raise rest_exceptions.AuthenticationFailed("No public key found")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
signing.verify_django(request, actor.public_key.encode("utf-8"))
|
signing.verify_django(request, actor.public_key.encode("utf-8"))
|
||||||
except cryptography.exceptions.InvalidSignature:
|
except cryptography.exceptions.InvalidSignature:
|
||||||
raise exceptions.AuthenticationFailed("Invalid signature")
|
raise rest_exceptions.AuthenticationFailed("Invalid signature")
|
||||||
|
|
||||||
return actor
|
return actor
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
from rest_framework import authentication, exceptions
|
|
||||||
from rest_framework import exceptions
|
from rest_framework import exceptions
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import unicodedata
|
import unicodedata
|
||||||
import re
|
import re
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db.models import Q
|
|
||||||
|
|
||||||
from funkwhale_api.common import session
|
from funkwhale_api.common import session
|
||||||
from funkwhale_api.moderation import models as moderation_models
|
from funkwhale_api.moderation import models as moderation_models
|
||||||
|
@ -64,7 +63,7 @@ def slugify_username(username):
|
||||||
def retrieve_ap_object(
|
def retrieve_ap_object(
|
||||||
fid, actor=None, serializer_class=None, queryset=None, apply_instance_policies=True
|
fid, actor=None, serializer_class=None, queryset=None, apply_instance_policies=True
|
||||||
):
|
):
|
||||||
from . import activity, serializers
|
from . import activity
|
||||||
|
|
||||||
policies = moderation_models.InstancePolicy.objects.active().filter(block_all=True)
|
policies = moderation_models.InstancePolicy.objects.active().filter(block_all=True)
|
||||||
if apply_instance_policies and policies.matching_url(fid):
|
if apply_instance_policies and policies.matching_url(fid):
|
||||||
|
|
|
@ -79,7 +79,7 @@ def test_retrieve_ap_object_honor_instance_policy_different_url_and_id(
|
||||||
block_all=True, for_domain=True
|
block_all=True, for_domain=True
|
||||||
).target_domain
|
).target_domain
|
||||||
fid = "https://ok/test"
|
fid = "https://ok/test"
|
||||||
m = r_mock.get(fid, json={"id": "http://{}/test".format(domain.name)})
|
r_mock.get(fid, json={"id": "http://{}/test".format(domain.name)})
|
||||||
|
|
||||||
with pytest.raises(exceptions.BlockedActorOrDomain):
|
with pytest.raises(exceptions.BlockedActorOrDomain):
|
||||||
utils.retrieve_ap_object(fid)
|
utils.retrieve_ap_object(fid)
|
||||||
|
|
Loading…
Reference in New Issue