feat(wireguard): QR-Modal nach Peer-Erstellung automatisch öffnen

Wenn beim Anlegen eines neuen Peers ein Schlüsselpaar server-seitig
generiert wurde (has_private_key=true), öffnet sich das QR-Modal
direkt nach dem Speichern — kein manuelles Klicken nötig.

Außerdem: version-Fallback-Strings in allen drei Binaries auf 1.1.80 synct.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Debian
2026-05-24 12:25:31 +02:00
parent e37e472960
commit e04bddd574
5 changed files with 12 additions and 5 deletions

View File

@@ -1 +1 @@
1.1.79 1.1.80

View File

@@ -60,7 +60,7 @@ import (
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users" usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
) )
var version = "1.1.79" var version = "1.1.80"
func main() { func main() {
addr := os.Getenv("EDGEGUARD_API_ADDR") addr := os.Getenv("EDGEGUARD_API_ADDR")

View File

@@ -11,7 +11,7 @@ import (
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup" "git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
) )
var version = "1.1.79" var version = "1.1.80"
const usage = `edgeguard-ctl — EdgeGuard CLI const usage = `edgeguard-ctl — EdgeGuard CLI

View File

@@ -35,7 +35,7 @@ import (
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts" "git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
) )
var version = "1.1.79" var version = "1.1.80"
const ( const (
// renewTickInterval — how often we re-evaluate expiring certs. // renewTickInterval — how often we re-evaluate expiring certs.

View File

@@ -360,10 +360,17 @@ function PeerDrawer({ iface, onClose }: PeerDrawerProps) {
if (editing) return (await apiClient.put(`/wireguard/peers/${editing.id}`, v)).data if (editing) return (await apiClient.put(`/wireguard/peers/${editing.id}`, v)).data
return (await apiClient.post(`/wireguard/interfaces/${ifaceID}/peers`, v)).data return (await apiClient.post(`/wireguard/interfaces/${ifaceID}/peers`, v)).data
}, },
onSuccess: () => { onSuccess: (envelope, _, ctx) => {
void ctx
message.success(t('common.save')) message.success(t('common.save'))
const wasCreating = !editing
setEditing(null); setCreating(false); form.resetFields() setEditing(null); setCreating(false); form.resetFields()
void qc.invalidateQueries({ queryKey: ['wg', 'peers', ifaceID] }) void qc.invalidateQueries({ queryKey: ['wg', 'peers', ifaceID] })
// Auto-open QR when we just created a peer with a generated keypair.
if (wasCreating && isEnvelope(envelope)) {
const peer = envelope.data as WGPeer
if (peer?.has_private_key) setQrPeer(peer)
}
}, },
onError: (e: Error) => message.error(e.message), onError: (e: Error) => message.error(e.message),
}) })