From 9a630fad92f647718ddfac52f728a7ed9cfc7089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Wed, 13 May 2026 16:22:49 -0400 Subject: [PATCH] fix(network): open Wi-Fi password modal upfront for enterprise networks (#2414) NetworkManager rejects AddConnection for 802-1x without a non-empty identity, so the new API v7 agent-prompt flow never reaches the SecretAgent for fresh enterprise connections. Fall back to the existing modal-upfront path (already wired to ask for username + password via requiresEnterprise) when modelData.enterprise, mirroring the legacy DMSService.apiVersion < 7 branch. Fixes #2358 Co-authored-by: Claude Opus 4.7 (1M context) --- quickshell/Modules/ControlCenter/Details/NetworkDetail.qml | 6 ++++-- quickshell/Modules/Settings/NetworkTab.qml | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/quickshell/Modules/ControlCenter/Details/NetworkDetail.qml b/quickshell/Modules/ControlCenter/Details/NetworkDetail.qml index d074a82a..a287a25c 100644 --- a/quickshell/Modules/ControlCenter/Details/NetworkDetail.qml +++ b/quickshell/Modules/ControlCenter/Details/NetworkDetail.qml @@ -644,6 +644,7 @@ Rectangle { wifiContent.menuOpen = true; networkContextMenu.currentSSID = modelData.ssid; networkContextMenu.currentSecured = modelData.secured; + networkContextMenu.currentEnterprise = modelData.enterprise; networkContextMenu.currentConnected = wifiDelegate.isConnected; networkContextMenu.currentSaved = modelData.saved; networkContextMenu.currentSignal = modelData.signal; @@ -744,7 +745,7 @@ Rectangle { event.accepted = true; return; } - if (modelData.secured && !modelData.saved && DMSService.apiVersion < 7) { + if (modelData.secured && !modelData.saved && (DMSService.apiVersion < 7 || modelData.enterprise)) { PopoutService.showWifiPasswordModal(modelData.ssid); } else { NetworkService.connectToWifi(modelData.ssid); @@ -762,6 +763,7 @@ Rectangle { property string currentSSID: "" property bool currentSecured: false + property bool currentEnterprise: false property bool currentConnected: false property bool currentSaved: false property int currentSignal: 0 @@ -802,7 +804,7 @@ Rectangle { NetworkService.disconnectWifi(); return; } - if (networkContextMenu.currentSecured && !networkContextMenu.currentSaved && DMSService.apiVersion < 7) { + if (networkContextMenu.currentSecured && !networkContextMenu.currentSaved && (DMSService.apiVersion < 7 || networkContextMenu.currentEnterprise)) { PopoutService.showWifiPasswordModal(networkContextMenu.currentSSID); return; } diff --git a/quickshell/Modules/Settings/NetworkTab.qml b/quickshell/Modules/Settings/NetworkTab.qml index a229314e..677c90de 100644 --- a/quickshell/Modules/Settings/NetworkTab.qml +++ b/quickshell/Modules/Settings/NetworkTab.qml @@ -1324,6 +1324,10 @@ Item { NetworkService.disconnectWifi(); return; } + if (modelData.secured && !modelData.saved && (DMSService.apiVersion < 7 || modelData.enterprise)) { + PopoutService.showWifiPasswordModal(modelData.ssid); + return; + } NetworkService.connectToWifi(modelData.ssid); } }