From 7a9b884983db7da29c15fd4ff22092135e0993f3 Mon Sep 17 00:00:00 2001 From: aecsocket Date: Tue, 21 Oct 2025 15:18:23 +0100 Subject: [PATCH 1/3] Update appropriate rows when removing a user --- .../labrinth-seed-data-202508052143.sql | 2 + .../labrinth/src/database/models/user_item.rs | 42 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql b/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql index 1ad6d4ec8c..5f4b0d20ef 100644 --- a/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql +++ b/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql @@ -1104,5 +1104,7 @@ COPY public.users (id, github_id, username, email, avatar_url, bio, created, rol 103587649610509 \N Default admin user admin@modrinth.invalid https://avatars.githubusercontent.com/u/106493074 $ chmod 777 labrinth 2020-07-18 16:03:00.000000+00 admin 0 0.00000000000000000000 \N \N \N \N \N $argon2i$v=19$m=4096,t=3,p=1$c2FsdEl0V2l0aFNhbHQ$xTGvQNICqetaNA0Wu1GwFmYhQjAreRcjBz6ornhaFXA t \N \N \N \N \N \N https://avatars.githubusercontent.com/u/106493074 t \. +INSERT INTO sessions (id, session, user_id, created, last_login, expires, refresh_expires, city, country, ip, os, platform, user_agent) +VALUES (93083445641246, 'mra_admin', 103587649610509, '2025-10-20 14:58:53.128901+00', '2025-10-20 14:58:53.128901+00', '2025-11-03 14:58:53.128901+00', '2025-12-19 14:58:53.128901+00', '', '', '127.0.0.1', 'Linux', 'Chrome', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36'); COMMIT; diff --git a/apps/labrinth/src/database/models/user_item.rs b/apps/labrinth/src/database/models/user_item.rs index 090d99e49e..2bc8f951b2 100644 --- a/apps/labrinth/src/database/models/user_item.rs +++ b/apps/labrinth/src/database/models/user_item.rs @@ -753,6 +753,48 @@ impl DBUser { .execute(&mut **transaction) .await?; + sqlx::query!( + " + UPDATE affiliate_codes + SET created_by = $1 + WHERE created_by = $2", + deleted_user as DBUserId, + id as DBUserId, + ) + .execute(&mut **transaction) + .await?; + + sqlx::query!( + " + DELETE FROM affiliate_codes + WHERE affiliate = $1", + id as DBUserId, + ) + .execute(&mut **transaction) + .await?; + + sqlx::query!( + " + UPDATE payouts_values + SET user_id = $1 + WHERE user_id = $2", + deleted_user as DBUserId, + id as DBUserId, + ) + .execute(&mut **transaction) + .await?; + + sqlx::query!( + " + UPDATE payouts_values_notifications + SET user_id = $1 + WHERE user_id = $2", + deleted_user as DBUserId, + id as DBUserId, + ) + .execute(&mut **transaction) + .await?; + let open_subscriptions = DBUserSubscription::get_all_user(id, &mut **transaction) .await?; From c81ee4d0ed0d1d9632c765c7cf9673dec023f56b Mon Sep 17 00:00:00 2001 From: aecsocket Date: Tue, 21 Oct 2025 17:38:43 +0100 Subject: [PATCH 2/3] Update sqlx cache --- ...7fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a.json | 15 +++++++++++++++ ...c2831299504aa605b6c8780c73457cbc09218a49c.json | 15 +++++++++++++++ ...64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea.json | 15 +++++++++++++++ ...6f658add5d93855f599a48eeb5f1811f14e7fe610.json | 14 ++++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 apps/labrinth/.sqlx/query-6443da83032ef5d6cb907f97fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a.json create mode 100644 apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json create mode 100644 apps/labrinth/.sqlx/query-b97afaa6cab8e042ab0117e64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea.json create mode 100644 apps/labrinth/.sqlx/query-ca9b41de4618bcf8ff4f6086f658add5d93855f599a48eeb5f1811f14e7fe610.json diff --git a/apps/labrinth/.sqlx/query-6443da83032ef5d6cb907f97fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a.json b/apps/labrinth/.sqlx/query-6443da83032ef5d6cb907f97fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a.json new file mode 100644 index 0000000000..1f1eb4f39f --- /dev/null +++ b/apps/labrinth/.sqlx/query-6443da83032ef5d6cb907f97fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "\n UPDATE affiliate_codes\n SET created_by = $1\n WHERE created_by = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8", + "Int8" + ] + }, + "nullable": [] + }, + "hash": "6443da83032ef5d6cb907f97fb37ae62351eeeb2ae3b8148cf8a8fd0deb2795a" +} diff --git a/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json b/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json new file mode 100644 index 0000000000..630c3e2c26 --- /dev/null +++ b/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "\n UPDATE payouts_values_notifications\n SET user_id = $1\n WHERE user_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8", + "Int8" + ] + }, + "nullable": [] + }, + "hash": "710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c" +} diff --git a/apps/labrinth/.sqlx/query-b97afaa6cab8e042ab0117e64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea.json b/apps/labrinth/.sqlx/query-b97afaa6cab8e042ab0117e64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea.json new file mode 100644 index 0000000000..30cda8db5a --- /dev/null +++ b/apps/labrinth/.sqlx/query-b97afaa6cab8e042ab0117e64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea.json @@ -0,0 +1,15 @@ +{ + "db_name": "PostgreSQL", + "query": "\n UPDATE payouts_values\n SET user_id = $1\n WHERE user_id = $2", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8", + "Int8" + ] + }, + "nullable": [] + }, + "hash": "b97afaa6cab8e042ab0117e64b43a8ba3a2c2be461ff9a6309d7e36c3148aeea" +} diff --git a/apps/labrinth/.sqlx/query-ca9b41de4618bcf8ff4f6086f658add5d93855f599a48eeb5f1811f14e7fe610.json b/apps/labrinth/.sqlx/query-ca9b41de4618bcf8ff4f6086f658add5d93855f599a48eeb5f1811f14e7fe610.json new file mode 100644 index 0000000000..7d1b773bd0 --- /dev/null +++ b/apps/labrinth/.sqlx/query-ca9b41de4618bcf8ff4f6086f658add5d93855f599a48eeb5f1811f14e7fe610.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "\n DELETE FROM affiliate_codes\n WHERE affiliate = $1", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [] + }, + "hash": "ca9b41de4618bcf8ff4f6086f658add5d93855f599a48eeb5f1811f14e7fe610" +} From f1d27dcd3b60745cb2ec92763fefcceeb7ab0f45 Mon Sep 17 00:00:00 2001 From: aecsocket Date: Tue, 21 Oct 2025 19:35:58 +0100 Subject: [PATCH 3/3] Delete rows from payouts_values_notifications instead of make ghost user --- ...c2831299504aa605b6c8780c73457cbc09218a49c.json | 15 --------------- ...b9da044f6760683cb89ff39255a177bb025e7638e.json | 14 ++++++++++++++ apps/labrinth/src/database/models/user_item.rs | 6 ++---- 3 files changed, 16 insertions(+), 19 deletions(-) delete mode 100644 apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json create mode 100644 apps/labrinth/.sqlx/query-713034d4968b290a0096e41b9da044f6760683cb89ff39255a177bb025e7638e.json diff --git a/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json b/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json deleted file mode 100644 index 630c3e2c26..0000000000 --- a/apps/labrinth/.sqlx/query-710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "\n UPDATE payouts_values_notifications\n SET user_id = $1\n WHERE user_id = $2", - "describe": { - "columns": [], - "parameters": { - "Left": [ - "Int8", - "Int8" - ] - }, - "nullable": [] - }, - "hash": "710aca28f71486dde8fd807c2831299504aa605b6c8780c73457cbc09218a49c" -} diff --git a/apps/labrinth/.sqlx/query-713034d4968b290a0096e41b9da044f6760683cb89ff39255a177bb025e7638e.json b/apps/labrinth/.sqlx/query-713034d4968b290a0096e41b9da044f6760683cb89ff39255a177bb025e7638e.json new file mode 100644 index 0000000000..2465ba1b6b --- /dev/null +++ b/apps/labrinth/.sqlx/query-713034d4968b290a0096e41b9da044f6760683cb89ff39255a177bb025e7638e.json @@ -0,0 +1,14 @@ +{ + "db_name": "PostgreSQL", + "query": "\n DELETE FROM payouts_values_notifications\n WHERE user_id = $1", + "describe": { + "columns": [], + "parameters": { + "Left": [ + "Int8" + ] + }, + "nullable": [] + }, + "hash": "713034d4968b290a0096e41b9da044f6760683cb89ff39255a177bb025e7638e" +} diff --git a/apps/labrinth/src/database/models/user_item.rs b/apps/labrinth/src/database/models/user_item.rs index 2bc8f951b2..18e4e7f7dd 100644 --- a/apps/labrinth/src/database/models/user_item.rs +++ b/apps/labrinth/src/database/models/user_item.rs @@ -786,10 +786,8 @@ impl DBUser { sqlx::query!( " - UPDATE payouts_values_notifications - SET user_id = $1 - WHERE user_id = $2", - deleted_user as DBUserId, + DELETE FROM payouts_values_notifications + WHERE user_id = $1", id as DBUserId, ) .execute(&mut **transaction)