diff --git a/allianceauth/services/modules/discord/manager.py b/allianceauth/services/modules/discord/manager.py index 7d7158a0..1814eeb1 100644 --- a/allianceauth/services/modules/discord/manager.py +++ b/allianceauth/services/modules/discord/manager.py @@ -163,12 +163,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() @@ -303,10 +302,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/allianceauth/services/modules/discord/tests.py b/allianceauth/services/modules/discord/tests.py index eb862fa3..c4add20c 100644 --- a/allianceauth/services/modules/discord/tests.py +++ b/allianceauth/services/modules/discord/tests.py @@ -198,11 +198,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): bot_add_url = DiscordOAuthManager.generate_bot_add_url() @@ -328,7 +328,7 @@ class DiscordManagerTestCase(TestCase): @requests_mock.Mocker() def test_update_groups(self, group_cache, m): # Arrange - groups = ['Member', 'Blue', 'Special Group'] + groups = ['Member', 'Blue', 'SpecialGroup'] group_cache.return_value = [{'id': 111, 'name': 'Member'}, {'id': 222, 'name': 'Blue'},