Do not sanitize Discord names

(cherry-picked from commit 8ce87896313d675ec942d1c774e3b93afbc3dc1f)
This commit is contained in:
Adarnof 2018-02-23 13:10:39 -05:00
parent a2f4226381
commit 5962f0f29f
2 changed files with 10 additions and 12 deletions

View File

@ -162,12 +162,11 @@ class DiscordOAuthManager:
@staticmethod
def _sanitize_name(name):
return re.sub('[^\w.-]', '', name)[:32]
return name[:32]
@staticmethod
def _sanitize_groupname(name):
name = name.strip(' _')
return DiscordOAuthManager._sanitize_name(name)
def _sanitize_group_name(name):
return name[:100]
@staticmethod
def generate_bot_add_url():
@ -260,7 +259,7 @@ class DiscordOAuthManager:
@staticmethod
def _group_name_to_id(name):
name = DiscordOAuthManager._sanitize_groupname(name)
name = DiscordOAuthManager._sanitize_group_name(name)
def get_or_make_role():
groups = DiscordOAuthManager._get_groups()
@ -298,10 +297,9 @@ class DiscordOAuthManager:
@api_backoff
def update_groups(user_id, groups):
custom_headers = {'content-type': 'application/json', 'authorization': 'Bot ' + settings.DISCORD_BOT_TOKEN}
group_ids = [DiscordOAuthManager._group_name_to_id(DiscordOAuthManager._sanitize_groupname(g)) for g in groups]
group_ids = [DiscordOAuthManager._group_name_to_id(DiscordOAuthManager._sanitize_group_name(g)) for g in groups]
path = DISCORD_URL + "/guilds/" + str(settings.DISCORD_GUILD_ID) + "/members/" + str(user_id)
data = {'roles': group_ids}
r = requests.patch(path, headers=custom_headers, json=data)
logger.debug("Received status code %s after setting user roles" % r.status_code)
r.raise_for_status()

View File

@ -208,11 +208,11 @@ class DiscordManagerTestCase(TestCase):
def setUp(self):
pass
def test__sanitize_groupname(self):
test_group_name = ' Group Name_Test_'
group_name = DiscordOAuthManager._sanitize_groupname(test_group_name)
def test__sanitize_group_name(self):
test_group_name = str(10**103)
group_name = DiscordOAuthManager._sanitize_group_name(test_group_name)
self.assertEqual(group_name, 'GroupName_Test')
self.assertEqual(group_name, test_group_name[:100])
def test_generate_Bot_add_url(self):
from . import manager
@ -358,7 +358,7 @@ class DiscordManagerTestCase(TestCase):
import json
# Arrange
groups = ['Member', 'Blue', 'Special Group']
groups = ['Member', 'Blue', 'SpecialGroup']
group_cache.return_value = [{'id': 111, 'name': 'Member'},
{'id': 222, 'name': 'Blue'},