fix: ScannedKeyRecord.AdoptedApiKeyId als string (UUID), verwaiste Referenzen bei Key-Löschung bereinigen

This commit is contained in:
Meleki committed 2026-03-13 13:00:05 +01:00
1 parent dde0fede7d
commit c5db6d0dbd
2 files changed
+9 -1

No files matched your search

+1 -1
View File
@@ -15,5 +15,5 @@ public class ScannedKeyRecord
public string ScannedAt { get; set; } // Wann gefunden
public string CheckedAt { get; set; } // Wann zuletzt geprüft
public int Deleted { get; set; } // Soft-Delete (1 = gelöscht/ignoriert)
public long? AdoptedApiKeyId { get; set; } // Verknüpfung zur api_keys.id (null = nicht übernommen)
public string AdoptedApiKeyId { get; set; } // Verknüpfung zur api_keys.key_id (null = nicht übernommen)
}
+8
View File
@@ -423,6 +423,14 @@ public partial class DatabaseService
public async Task DeleteApiKey(string keyId)
{
using var conn = CreateConnection();
// Scanned-Keys die auf diesen API-Key verweisen zurücksetzen
await conn.ExecuteAsync(
"UPDATE scanned_keys SET adopted_api_key_id = NULL WHERE adopted_api_key_id = (SELECT id FROM api_keys WHERE key_id = @keyId)",
new { keyId });
// User die diesen Key ausgewählt haben zurücksetzen
await conn.ExecuteAsync(
"UPDATE users SET selected_api_key_id = NULL WHERE selected_api_key_id = @keyId",
new { keyId });
await conn.ExecuteAsync("DELETE FROM api_keys WHERE key_id = @keyId", new { keyId });
}