From 563967bf0d7e9ad2a86889d798909fcf2a12fee0 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Wed, 2 Dec 2015 01:39:06 +0000 Subject: [PATCH] Updated form to a password input for security. DiscordManager now strips groups before kicking. This prevents server owners from keeping groups if they connect account with auth. --- services/forms.py | 2 +- services/managers/discord_manager.py | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/services/forms.py b/services/forms.py index f96c404b..0696c939 100644 --- a/services/forms.py +++ b/services/forms.py @@ -27,4 +27,4 @@ class FleetFormatterForm(forms.Form): class DiscordForm(forms.Form): email = forms.CharField(label="Email Address", required=True) - password = forms.CharField(label="Password", required=True) + password = forms.CharField(label="Password", required=True, widget=forms.PasswordInput) diff --git a/services/managers/discord_manager.py b/services/managers/discord_manager.py index 80c90609..b226eedc 100644 --- a/services/managers/discord_manager.py +++ b/services/managers/discord_manager.py @@ -283,13 +283,16 @@ class DiscordManager: @staticmethod def update_groups(user_id, groups): group_ids = [] - for g in groups: - try: - group_id = DiscordAPIManager.get_group_id(settings.DISCORD_SERVER_ID, g) - group_ids.append(group_id) - except: - # need to create role on server for group - group_ids.append(DiscordManager.create_group(g)) + if len(groups) == 0: + group_ids = [] + else: + for g in groups: + try: + group_id = DiscordAPIManager.get_group_id(settings.DISCORD_SERVER_ID, g) + group_ids.append(group_id) + except: + # need to create role on server for group + group_ids.append(DiscordManager.create_group(g)) DiscordAPIManager.set_roles(settings.DISCORD_SERVER_ID, user_id, group_ids) @staticmethod @@ -340,6 +343,7 @@ class DiscordManager: @staticmethod def delete_user(user_id): try: + DiscordManager.update_groups(user_id, []) DiscordAPIManager.ban_user(settings.DISCORD_SERVER_ID, user_id) return True except: