fix: ScannedKeyRecord.AdoptedApiKeyId als string (UUID), verwaiste Referenzen bei Key-Löschung bereinigen
This commit is contained in:
1 parent
dde0fede7d
commit
c5db6d0dbd
2 files changed
+9
-1
No files matched your search
@@ -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)
|
||||
}
|
||||
@@ -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 });
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user