kopia lustrzana https://github.com/snarfed/bridgy-fed
webfinger: check that AP protocol is enabled
rodzic
ce23a72549
commit
9fe715137a
|
@ -8,7 +8,7 @@ from oauth_dropins.webutil import util
|
||||||
from oauth_dropins.webutil.testutil import requests_response
|
from oauth_dropins.webutil.testutil import requests_response
|
||||||
|
|
||||||
# import first so that Fake is defined before URL routes are registered
|
# import first so that Fake is defined before URL routes are registered
|
||||||
from .testutil import Fake, TestCase
|
from .testutil import ExplicitEnableFake, Fake, TestCase
|
||||||
|
|
||||||
from models import PROTOCOLS
|
from models import PROTOCOLS
|
||||||
import protocol
|
import protocol
|
||||||
|
@ -296,6 +296,17 @@ class WebfingerTest(TestCase):
|
||||||
got = self.client.get(f'/.well-known/webfinger?resource=acct:user.com@user.com')
|
got = self.client.get(f'/.well-known/webfinger?resource=acct:user.com@user.com')
|
||||||
self.assertEqual(404, got.status_code)
|
self.assertEqual(404, got.status_code)
|
||||||
|
|
||||||
|
def test_protocol_not_enabled(self):
|
||||||
|
self.make_user('eefake:user', cls=ExplicitEnableFake)
|
||||||
|
got = self.client.get(f'/.well-known/webfinger?resource=acct:eefake:user@eefake.brid.gy')
|
||||||
|
self.assertEqual(404, got.status_code)
|
||||||
|
|
||||||
|
def test_protocol_enabled(self):
|
||||||
|
self.make_user('eefake:user', cls=ExplicitEnableFake,
|
||||||
|
enabled_protocols=['activitypub'])
|
||||||
|
got = self.client.get(f'/.well-known/webfinger?resource=acct:eefake:user@eefake.brid.gy')
|
||||||
|
self.assertEqual(200, got.status_code)
|
||||||
|
|
||||||
def test_bad_id(self):
|
def test_bad_id(self):
|
||||||
got = self.client.get(f'/.well-known/webfinger?resource=acct:nope@fa.brid.gy')
|
got = self.client.get(f'/.well-known/webfinger?resource=acct:nope@fa.brid.gy')
|
||||||
self.assertEqual(400, got.status_code, got.get_data(as_text=True))
|
self.assertEqual(400, got.status_code, got.get_data(as_text=True))
|
||||||
|
|
|
@ -90,7 +90,7 @@ class Webfinger(flask_util.XrdOrJrd):
|
||||||
if user and not user.direct:
|
if user and not user.direct:
|
||||||
error(f"{user.key} hasn't signed up yet", status=404)
|
error(f"{user.key} hasn't signed up yet", status=404)
|
||||||
|
|
||||||
if not user:
|
if not user or not user.is_enabled_to(activitypub.ActivityPub, user=user):
|
||||||
error(f'No {cls.LABEL} user found for {id}', status=404)
|
error(f'No {cls.LABEL} user found for {id}', status=404)
|
||||||
|
|
||||||
ap_handle = user.handle_as('activitypub')
|
ap_handle = user.handle_as('activitypub')
|
||||||
|
|
Ładowanie…
Reference in New Issue