From d9ffaa5e5032f28587817fac902177fb9898f87f Mon Sep 17 00:00:00 2001 From: Adarnof Date: Mon, 30 Nov 2015 23:41:44 +0000 Subject: [PATCH] Initial work on reset discord account. --- alliance_auth/urls.py | 1 + services/managers/discord_manager.py | 7 +++---- services/views.py | 16 ++++++++++++++-- stock/templates/registered/services.html | 8 ++++++++ 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/alliance_auth/urls.py b/alliance_auth/urls.py index dbdbb767..78f3fbd4 100755 --- a/alliance_auth/urls.py +++ b/alliance_auth/urls.py @@ -128,6 +128,7 @@ urlpatterns = patterns('', # Discord Service Control url(r'^activate_discord/$', 'services.views.activate_discord', name='auth_activate_discord'), url(r'^deactivate_discord/$', 'services.views.deactivate_discord', name='auth_deactivate_discord'), + url(r'^reset_discord/$', 'services.views.reset_discord', name='auth_reset_discord'), # Tools url(r'^tool/fleet_formatter_tool/$', 'services.views.fleet_formatter_view', diff --git a/services/managers/discord_manager.py b/services/managers/discord_manager.py index d0f61016..0b99e26f 100644 --- a/services/managers/discord_manager.py +++ b/services/managers/discord_manager.py @@ -227,13 +227,12 @@ class DiscordManager: def delete_user(username): try: user_id = DiscordAPIManager.get_user_id(username) - except: + DiscordAPIManager.kick_user(settings.DISCORD_SERVER_ID, user_id) + except KeyError: #user does not exist return True - try: - DiscordAPIManager.kick_user(settings.DISCORD_SERVER_ID, user_id) - return True except: + #something went wrong return False @staticmethod diff --git a/services/views.py b/services/views.py index a566fe63..980c3f47 100755 --- a/services/views.py +++ b/services/views.py @@ -337,11 +337,23 @@ 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.jabber_username) + result = DiscordManager.delete_user(authinfo.discord_username) remove_all_syncgroups_for_service(request.user, "discord") - # If our username is blank means we failed if result: AuthServicesInfoManager.update_user_discord_info("", "", request.user) return HttpResponseRedirect("/services/") return HttpResponseRedirect("/dashboard") +@login_required +@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) + if result: + # ensures succesful deletion + new_result = DiscordManager.add_user(authinfo.discord_username) + if new_result: + # ensures succesful creation + AuthServicesInfoManager.update_user_discord_info(new_result[0], new_result[1], request.user) + return HttpResponseRedirect("/services/") + return HttpResponseRedirect("/services/") diff --git a/stock/templates/registered/services.html b/stock/templates/registered/services.html index c26b5ced..0a2d4d86 100755 --- a/stock/templates/registered/services.html +++ b/stock/templates/registered/services.html @@ -172,6 +172,10 @@ class="glyphicon glyphicon-ok"> {% else %} + + + @@ -346,6 +350,10 @@ class="glyphicon glyphicon-ok"> {% else %} + + +