From 54d216bdf0a6fb689af27c83f513977d07f0a2bb Mon Sep 17 00:00:00 2001 From: Adarnof Date: Tue, 1 Dec 2015 04:50:14 +0000 Subject: [PATCH] Changed how user account deletions are handled. Now bans/unbans account as necessary. --- services/managers/discord_manager.py | 16 ++++++++++++---- services/views.py | 17 +++++------------ util/common_task.py | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/services/managers/discord_manager.py b/services/managers/discord_manager.py index 9ae5ceb3..b5627e17 100644 --- a/services/managers/discord_manager.py +++ b/services/managers/discord_manager.py @@ -266,10 +266,18 @@ class DiscordManager: @staticmethod def lock_user(username): - user_id = DiscordAPIManager.get_user_id(username) - DiscordAPIManager.ban_user(settings.DISCORD_SERVER_ID, user_id) + try: + user_id = DiscordAPIManager.get_user_id(username) + DiscordAPIManager.ban_user(settings.DISCORD_SERVER_ID, user_id) + return True + except: + return False @staticmethod def unlock_user(username): - user_id = DiscordAPIManager.get_user_id(username) - DiscordAPIManager.unban_user(settings.DISCORD_SERVER_ID, user_id) + try: + user_id = DiscordAPIManager.get_user_id(username) + DiscordAPIManager.unban_user(settings.DISCORD_SERVER_ID, user_id) + return True + except: + return False diff --git a/services/views.py b/services/views.py index 100f05b5..114f5f1a 100755 --- a/services/views.py +++ b/services/views.py @@ -337,10 +337,9 @@ def activate_discord(request): @user_passes_test(service_blue_alliance_test) def deactivate_discord(request): authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) - result = DiscordManager.delete_user(authinfo.discord_username) + result = DiscordManager.lock_user(authinfo.discord_username) remove_all_syncgroups_for_service(request.user, "discord") if result: - AuthServicesInfoManager.update_user_discord_info("", "", request.user) return HttpResponseRedirect("/services/") return HttpResponseRedirect("/dashboard") @@ -348,14 +347,8 @@ def deactivate_discord(request): @user_passes_test(service_blue_alliance_test) def reset_discord(request): authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) - result = DiscordManager.delete_user(authinfo.discord_username) + result = DiscordManager.unlock_user(authinfo.discord_username) + update_discord_groups(request.user) if result: - # ensures succesful deletion - AuthServicesInfoManager.update_user_discord_info("", "", request.user) - new_result = DiscordManager.add_user(authinfo.discord_username, request.user.email) - if new_result: - # ensures succesful creation - AuthServicesInfoManager.update_user_discord_info(new_result[0], new_result[1], request.user) - update_discord_groups(request.user) - return HttpResponseRedirect("/services/") - return HttpResponseRedirect("/services/") + return HttpResponseRedirect("/services/") + return HttpResponseRedirect("/dashboard/") diff --git a/util/common_task.py b/util/common_task.py index dc7bf364..eb61672e 100755 --- a/util/common_task.py +++ b/util/common_task.py @@ -43,7 +43,7 @@ def deactivate_services(user): Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid) AuthServicesInfoManager.update_user_teamspeak3_info("", "", user) if authinfo.discord_username and authinfo.discord_username != "": - DiscordManager.delete_user(authinfo.discord_username) + DiscordManager.lock_user(authinfo.discord_username) AuthServicesInfoManager.update_user_discord_info("", "", user)