From 3269082acf36d1fa7ebc34a127c1f0d55db81f88 Mon Sep 17 00:00:00 2001 From: LukeGus Date: Wed, 3 Sep 2025 00:02:29 -0500 Subject: [PATCH] Fix config editor erorrs causing user delete failure --- src/backend/database/routes/users.ts | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/backend/database/routes/users.ts b/src/backend/database/routes/users.ts index 39140c76..11dc46d0 100644 --- a/src/backend/database/routes/users.ts +++ b/src/backend/database/routes/users.ts @@ -1311,26 +1311,19 @@ router.delete('/delete-user', authenticateJWT, async (req, res) => { const targetUserId = targetUser[0].id; try { - // Delete from tables that have foreign keys to both users and ssh_data first - // These must be deleted before ssh_data because they reference host_id await db.delete(fileManagerRecent).where(eq(fileManagerRecent.userId, targetUserId)); await db.delete(fileManagerPinned).where(eq(fileManagerPinned.userId, targetUserId)); await db.delete(fileManagerShortcuts).where(eq(fileManagerShortcuts.userId, targetUserId)); - // Delete from tables that only reference users await db.delete(dismissedAlerts).where(eq(dismissedAlerts.userId, targetUserId)); - // Delete from ssh_data (which references users) await db.delete(sshData).where(eq(sshData.userId, targetUserId)); - // Delete from any additional tables that might exist - db.$client.prepare('DELETE FROM config_editor_recent WHERE user_id = ?').run(targetUserId); - db.$client.prepare('DELETE FROM config_editor_pinned WHERE user_id = ?').run(targetUserId); - db.$client.prepare('DELETE FROM config_editor_shortcuts WHERE user_id = ?').run(targetUserId); - db.$client.prepare('DELETE FROM shared_hosts WHERE original_user_id = ? OR shared_with_user_id = ?').run(targetUserId, targetUserId); + // Note: All user-related data has been deleted above + // The tables config_editor_* and shared_hosts don't exist in the current schema } catch (cleanupError) { logger.error(`Cleanup failed for user ${username}:`, cleanupError); - throw cleanupError; // Re-throw to prevent user deletion if cleanup fails + throw cleanupError; } await db.delete(users).where(eq(users.id, targetUserId));