Changed how user account deletions are handled.

Now bans/unbans account as necessary.
This commit is contained in:
Adarnof 2015-12-01 04:50:14 +00:00
parent 7461501d41
commit 54d216bdf0
3 changed files with 18 additions and 17 deletions

View File

@ -266,10 +266,18 @@ class DiscordManager:
@staticmethod @staticmethod
def lock_user(username): def lock_user(username):
user_id = DiscordAPIManager.get_user_id(username) try:
DiscordAPIManager.ban_user(settings.DISCORD_SERVER_ID, user_id) user_id = DiscordAPIManager.get_user_id(username)
DiscordAPIManager.ban_user(settings.DISCORD_SERVER_ID, user_id)
return True
except:
return False
@staticmethod @staticmethod
def unlock_user(username): def unlock_user(username):
user_id = DiscordAPIManager.get_user_id(username) try:
DiscordAPIManager.unban_user(settings.DISCORD_SERVER_ID, user_id) user_id = DiscordAPIManager.get_user_id(username)
DiscordAPIManager.unban_user(settings.DISCORD_SERVER_ID, user_id)
return True
except:
return False

View File

@ -337,10 +337,9 @@ def activate_discord(request):
@user_passes_test(service_blue_alliance_test) @user_passes_test(service_blue_alliance_test)
def deactivate_discord(request): def deactivate_discord(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) 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") remove_all_syncgroups_for_service(request.user, "discord")
if result: if result:
AuthServicesInfoManager.update_user_discord_info("", "", request.user)
return HttpResponseRedirect("/services/") return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/dashboard") return HttpResponseRedirect("/dashboard")
@ -348,14 +347,8 @@ def deactivate_discord(request):
@user_passes_test(service_blue_alliance_test) @user_passes_test(service_blue_alliance_test)
def reset_discord(request): def reset_discord(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user) 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: if result:
# ensures succesful deletion return HttpResponseRedirect("/services/")
AuthServicesInfoManager.update_user_discord_info("", "", request.user) return HttpResponseRedirect("/dashboard/")
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/")

View File

@ -43,7 +43,7 @@ def deactivate_services(user):
Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid) Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
AuthServicesInfoManager.update_user_teamspeak3_info("", "", user) AuthServicesInfoManager.update_user_teamspeak3_info("", "", user)
if authinfo.discord_username and authinfo.discord_username != "": 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) AuthServicesInfoManager.update_user_discord_info("", "", user)