Merge pull request #1335 from DeeUnderscore/webfinger-ignore-case

Make webfinger match usernames in case insensitive manner
This commit is contained in:
Mouse Reeve 2021-08-27 16:25:06 -07:00 committed by GitHub
commit 7544647b5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View file

@ -51,6 +51,16 @@ class UserViews(TestCase):
data = json.loads(result.getvalue()) data = json.loads(result.getvalue())
self.assertEqual(data["subject"], "acct:mouse@local.com") self.assertEqual(data["subject"], "acct:mouse@local.com")
def test_webfinger_case_sensitivty(self):
"""ensure that webfinger queries are not case sensitive"""
request = self.factory.get("", {"resource": "acct:MoUsE@local.com"})
request.user = self.anonymous_user
result = views.webfinger(request)
self.assertIsInstance(result, JsonResponse)
data = json.loads(result.getvalue())
self.assertEqual(data["subject"], "acct:mouse@local.com")
def test_nodeinfo_pointer(self): def test_nodeinfo_pointer(self):
"""just tells you where nodeinfo is""" """just tells you where nodeinfo is"""
request = self.factory.get("") request = self.factory.get("")

View file

@ -20,7 +20,7 @@ def webfinger(request):
username = resource.replace("acct:", "") username = resource.replace("acct:", "")
try: try:
user = models.User.objects.get(username=username) user = models.User.objects.get(username__iexact=username)
except models.User.DoesNotExist: except models.User.DoesNotExist:
return HttpResponseNotFound("No account found") return HttpResponseNotFound("No account found")