diff --git a/services/modules/discord/manager.py b/services/modules/discord/manager.py index 278bde92..1281c0a7 100644 --- a/services/modules/discord/manager.py +++ b/services/modules/discord/manager.py @@ -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() - diff --git a/services/modules/discord/tests.py b/services/modules/discord/tests.py index 22a6e989..6f83ac4c 100644 --- a/services/modules/discord/tests.py +++ b/services/modules/discord/tests.py @@ -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'},