fix(api): WireGuard Private-Key-Verlust bei Peer-Update + Domain-Header-Ownership
wireguard.go: UpdatePeer zerstörte den gespeicherten encPriv wenn der Client denselben public_key im Update-Body mitschickte (encPriv = nil auf Zeile 532). Fix: encPriv wird nur geleert wenn der public_key sich tatsächlich ÄNDERT. Andernfalls (gleicher Public Key = Benutzer ändert z.B. nur Allowed-IPs) bleibt das verschlüsselte Private Key erhalten und QR/conf-Download bleiben verfügbar. domains.go + domainheaders.go: UpdateHeader() ignorierte die domainID aus der URL. Fix: Update-SQL prüft jetzt WHERE id=$4 AND domain_id=$5 — falsch adressierte Requests kriegen 404 statt blind zu updaten. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -213,7 +213,7 @@ func (h *DomainsHandler) CreateHeader(c *gin.Context) {
|
||||
}
|
||||
|
||||
func (h *DomainsHandler) UpdateHeader(c *gin.Context) {
|
||||
_, ok := parseID(c)
|
||||
domainID, ok := parseID(c)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
@@ -231,7 +231,7 @@ func (h *DomainsHandler) UpdateHeader(c *gin.Context) {
|
||||
response.BadRequest(c, errors.New("invalid header name"))
|
||||
return
|
||||
}
|
||||
out, err := h.Headers.Update(c.Request.Context(), hid, req)
|
||||
out, err := h.Headers.Update(c.Request.Context(), domainID, hid, req)
|
||||
if err != nil {
|
||||
if errors.Is(err, domainheaders.ErrNotFound) {
|
||||
response.NotFound(c, err)
|
||||
|
||||
Reference in New Issue
Block a user