mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-11 05:20:16 +02:00
Dissociates user account from email address when deleting service.
This commit is contained in:
parent
f6ef741e63
commit
ec1b17df25
@ -245,6 +245,20 @@ class DiscordAPIManager:
|
|||||||
r.raise_for_status()
|
r.raise_for_status()
|
||||||
return r.json()
|
return r.json()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def destroy_user(email, current_password):
|
||||||
|
data = {
|
||||||
|
'avatar': None,
|
||||||
|
'username': os.urandom(8).encode('hex'),
|
||||||
|
'password': current_password,
|
||||||
|
'email': os.urandom(8).encode('hex') + '@test.com',
|
||||||
|
}
|
||||||
|
path = DISCORD_URL + "/users/@me"
|
||||||
|
custom_headers = {'content-type':'application/json', 'authorization': DiscordAPIManager.get_token_by_user(email, current_password)}
|
||||||
|
r = requests.patch(path, headers=custom_headers, data=json.dumps(data))
|
||||||
|
r.raise_for_status
|
||||||
|
return r.json()
|
||||||
|
|
||||||
class DiscordManager:
|
class DiscordManager:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
@ -272,17 +286,16 @@ class DiscordManager:
|
|||||||
return "", ""
|
return "", ""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def delete_user(username):
|
def delete_user(username, email, password):
|
||||||
try:
|
try:
|
||||||
user_id = DiscordAPIManager.get_user_id(settings.DISCORD_SERVER_ID, username)
|
user_id = DiscordAPIManager.get_user_id(settings.DISCORD_SERVER_ID, username)
|
||||||
DiscordAPIManager.kick_user(settings.DISCORD_SERVER_ID, user_id)
|
DiscordAPIManager.kick_user(settings.DISCORD_SERVER_ID, user_id)
|
||||||
return True
|
DiscordAPIManager.destroy_user(email, password)
|
||||||
except KeyError:
|
|
||||||
#user does not exist
|
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
#something went wrong
|
#something went wrong
|
||||||
return False
|
return False
|
||||||
|
return False
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def update_groups(username, groups):
|
def update_groups(username, groups):
|
||||||
|
@ -337,7 +337,7 @@ 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.delete_user(authinfo.discord_username, request.user.email, authinfo.discord_password)
|
||||||
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)
|
AuthServicesInfoManager.update_user_discord_info("", "", request.user)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user