Skip to content

Commit 79f142e

Browse files
Wifi: NetworkManager: Allow networkManager backend to forget networks
1 parent 59d2cd4 commit 79f142e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

core/services/wifi/typedefs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class SavedWifiNetwork(BaseModel):
4343
bssid: Optional[str]
4444
flags: Optional[str]
4545
nm_id: Optional[str]
46+
nm_uuid: Optional[str]
4647

4748

4849
class WifiCredentials(BaseModel):

core/services/wifi/wifi_handlers/networkmanager/networkmanager.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,13 @@ async def get_saved_wifi_network(self) -> List[SavedWifiNetwork]:
466466

467467
ssid = profile.wireless.ssid.decode("utf-8")
468468
saved_networks.append(
469-
SavedWifiNetwork(networkid=0, ssid=ssid, bssid=profile.wireless.bssid, nm_id=conn_path)
469+
SavedWifiNetwork(
470+
networkid=0,
471+
ssid=ssid,
472+
bssid=profile.wireless.bssid,
473+
nm_id=conn_path,
474+
nm_uuid=profile.connection.uuid,
475+
)
470476
)
471477
except Exception as e:
472478
logger.error(f"Error processing connection {conn_path}: {e}")
@@ -584,7 +590,11 @@ def is_smart_hotspot_enabled(self) -> bool:
584590
return self._settings_manager.settings.smart_hotspot_enabled is True
585591

586592
async def remove_network(self, _network_id: str) -> None:
587-
raise NotImplementedError
593+
networks = await self.get_saved_wifi_network()
594+
network = next(filter(lambda net: net.ssid == _network_id, networks), None)
595+
if network is not None and network.nm_uuid is not None and self._nm_settings is not None:
596+
logger.info(f"Forgetting network {network}")
597+
await self._nm_settings.delete_connection_by_uuid(network.nm_uuid)
588598

589599
async def hotspot_watchdog(self) -> None:
590600
"""

0 commit comments

Comments
 (0)