added last fixes for dev branch prepartion
This commit is contained in:
@@ -101,15 +101,16 @@ func updateFqdnRenewalEnabledHandler(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// Wenn renewal_enabled deaktiviert wird, lösche alle Queue-Einträge für diesen FQDN
|
||||
// Wenn renewal_enabled deaktiviert wird, lösche nur pending/processing Queue-Einträge für diesen FQDN
|
||||
// Completed und failed Einträge bleiben als Historie erhalten
|
||||
if !req.RenewalEnabled {
|
||||
_, err = tx.ExecContext(ctx, "DELETE FROM renewal_queue WHERE fqdn_id = ?", fqdnID)
|
||||
_, err = tx.ExecContext(ctx, "DELETE FROM renewal_queue WHERE fqdn_id = ? AND status IN ('pending', 'processing')", fqdnID)
|
||||
if err != nil {
|
||||
http.Error(w, "Fehler beim Löschen der Queue-Einträge", http.StatusInternalServerError)
|
||||
log.Printf("Fehler beim Löschen der Queue-Einträge: %v", err)
|
||||
return
|
||||
}
|
||||
log.Printf("Queue-Einträge für FQDN %s gelöscht (renewal_enabled deaktiviert)", fqdnID)
|
||||
log.Printf("Pending/Processing Queue-Einträge für FQDN %s gelöscht (renewal_enabled deaktiviert)", fqdnID)
|
||||
}
|
||||
|
||||
// Committe die Transaktion
|
||||
@@ -265,3 +266,68 @@ func getRenewalQueueHandler(w http.ResponseWriter, r *http.Request) {
|
||||
})
|
||||
}
|
||||
|
||||
// deleteAllRenewalQueueEntriesHandler löscht alle Einträge aus der Renewal Queue
|
||||
func deleteAllRenewalQueueEntriesHandler(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.Header().Set("Access-Control-Allow-Origin", "*")
|
||||
w.Header().Set("Access-Control-Allow-Methods", "DELETE, OPTIONS")
|
||||
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
|
||||
|
||||
if r.Method == "OPTIONS" {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
return
|
||||
}
|
||||
|
||||
// Prüfe Berechtigung - nur authentifizierte User
|
||||
userID, username := getUserFromRequest(r)
|
||||
if userID == "" {
|
||||
http.Error(w, "Nicht authentifiziert", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
|
||||
// Prüfe Bestätigung (optional, aber empfohlen)
|
||||
confirm := r.URL.Query().Get("confirm")
|
||||
if confirm != "true" {
|
||||
http.Error(w, "Bestätigung erforderlich. Verwende ?confirm=true", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
||||
defer cancel()
|
||||
|
||||
// Lösche alle Queue-Einträge
|
||||
result, err := db.ExecContext(ctx, "DELETE FROM renewal_queue")
|
||||
if err != nil {
|
||||
http.Error(w, "Fehler beim Löschen der Queue-Einträge", http.StatusInternalServerError)
|
||||
log.Printf("Fehler beim Löschen der Queue-Einträge: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
rowsAffected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
http.Error(w, "Fehler beim Prüfen der gelöschten Zeilen", http.StatusInternalServerError)
|
||||
log.Printf("Fehler beim Prüfen der gelöschten Zeilen: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
log.Printf("Alle Renewal Queue-Einträge gelöscht: %d Einträge", rowsAffected)
|
||||
|
||||
response := map[string]interface{}{
|
||||
"success": true,
|
||||
"message": "Alle Renewal Queue-Einträge erfolgreich gelöscht",
|
||||
"deletedCount": rowsAffected,
|
||||
}
|
||||
|
||||
w.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(w).Encode(response)
|
||||
|
||||
// Audit-Log
|
||||
if auditService != nil {
|
||||
ipAddress, userAgent := getRequestInfo(r)
|
||||
auditService.Track(r.Context(), "DELETE", "renewal_queue", "", userID, username, map[string]interface{}{
|
||||
"deletedCount": rowsAffected,
|
||||
"message": fmt.Sprintf("Alle Renewal Queue-Einträge gelöscht (%d Einträge)", rowsAffected),
|
||||
}, ipAddress, userAgent)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user