Dev 1.5.0 #159

Merged
LukeGus merged 28 commits from dev-1.5.0 into main 2025-09-03 05:14:50 +00:00
Showing only changes of commit 3269082acf - Show all commits

View File

@@ -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));