diff --git a/Tools/dump_user_data.py b/Tools/dump_user_data.py index 2030280c79..d95812987f 100755 --- a/Tools/dump_user_data.py +++ b/Tools/dump_user_data.py @@ -8,7 +8,7 @@ import os import psycopg2 from uuid import UUID -LATEST_DB_MIGRATION = "20220816163319_Traits" +LATEST_DB_MIGRATION = "20230402214647_BanAutoDelete" def main(): parser = argparse.ArgumentParser() @@ -39,6 +39,7 @@ def main(): dump_player(cur, user_id, arg_output) dump_preference(cur, user_id, arg_output) dump_server_ban(cur, user_id, arg_output) + dump_server_ban_exemption(cur, user_id, arg_output) dump_server_role_ban(cur, user_id, arg_output) dump_uploaded_resource_log(cur, user_id, arg_output) dump_whitelist(cur, user_id, arg_output) @@ -300,6 +301,28 @@ FROM ( f.write(json_data) +def dump_server_ban_exemption(cur: "psycopg2.cursor", user_id: str, outdir: str): + print("Dumping server_ban_exemption...") + + cur.execute(""" +SELECT + COALESCE(json_agg(to_json(data)), '[]') #>> '{}' +FROM ( + SELECT + * + FROM + server_ban_exemption + WHERE + user_id = %s +) as data +""", (user_id,)) + + json_data = cur.fetchall()[0][0] + + with open(os.path.join(outdir, "server_ban_exemption.json"), "w", encoding="utf-8") as f: + f.write(json_data) + + def dump_server_role_ban(cur: "psycopg2.cursor", user_id: str, outdir: str): print("Dumping server_role_ban...") diff --git a/Tools/erase_user_data.py b/Tools/erase_user_data.py index f8e29f9f60..6d7061b8d6 100644 --- a/Tools/erase_user_data.py +++ b/Tools/erase_user_data.py @@ -12,7 +12,7 @@ import os import psycopg2 from uuid import UUID -LATEST_DB_MIGRATION = "20220816163319_Traits" +LATEST_DB_MIGRATION = "20230402214647_BanAutoDelete" def main(): parser = argparse.ArgumentParser() @@ -39,6 +39,7 @@ def main(): clear_player(cur, user_id) clear_preference(cur, user_id) clear_server_ban(cur, user_id) + clear_server_ban_exemption(cur, user_id) clear_server_role_ban(cur, user_id) clear_uploaded_resource_log(cur, user_id) clear_whitelist(cur, user_id) @@ -153,6 +154,17 @@ WHERE """, (user_id,)) +def clear_server_ban_exemption(cur: "psycopg2.cursor", user_id: str): + print("Clearing server_ban_exemption...") + + cur.execute(""" +DELETE FROM + server_ban_exemption +WHERE + user_id = %s +""", (user_id,)) + + def clear_server_role_ban(cur: "psycopg2.cursor", user_id: str): print("Clearing server_role_ban...")