Skip to content

Commit e4cc597

Browse files
committed
anon gateway warning box on main qubesmanager page
1 parent 6d7ac61 commit e4cc597

File tree

1 file changed

+42
-20
lines changed

1 file changed

+42
-20
lines changed

qubesmanager/qube_manager.py

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
from qubesadmin import utils
3434
from qubesadmin.tools import qvm_start
3535

36+
# pylint: disable=import-error
37+
from PyQt6 import QtWidgets
38+
3639
# pylint: disable=import-error
3740
from PyQt6.QtCore import (Qt, QAbstractTableModel, QObject, pyqtSlot, QEvent,
3841
QSettings, QRegularExpression, QSortFilterProxyModel,
@@ -959,6 +962,32 @@ def change_template(self, template):
959962

960963
def change_network(self, netvm_name):
961964
selected_vms = self.get_selected_vms()
965+
966+
if netvm_name:
967+
check_power = any(info.state['power'] == 'Running' for info
968+
in self.get_selected_vms())
969+
if netvm_name == 'default':
970+
netvm = self._get_default_netvm()
971+
else:
972+
netvm = self.qubes_cache.get_vm(name=netvm_name)
973+
netvm = netvm.vm
974+
975+
if netvm:
976+
vms_tags = {tag
977+
for selected_vm in selected_vms
978+
for tag in selected_vm.vm.tags}
979+
if 'anon-vm' in vms_tags and not 'anon-gateway' in netvm.tags:
980+
QtWidgets.QMessageBox.warning(
981+
self,
982+
self.tr("Warning!"),
983+
self.tr(
984+
"Anonymous qubes must be connected to an anonymous "
985+
"gateway to ensure privacy and anonymity. By "
986+
"changing the net qube to a gateway that does not "
987+
"provide anonymity, your IP address will be leaked "
988+
"on the Internet. Continue at your own risk.")
989+
)
990+
962991
reply = QMessageBox.question(
963992
self, self.tr("Network Change Confirmation"),
964993
self.tr("Do you want to change '{0}'<br>"
@@ -969,27 +998,20 @@ def change_network(self, netvm_name):
969998
if reply != QMessageBox.StandardButton.Yes:
970999
return
9711000

972-
if netvm_name:
973-
check_power = any(info.state['power'] == 'Running' for info
974-
in self.get_selected_vms())
975-
if netvm_name == 'default':
976-
netvm = self._get_default_netvm()
977-
else:
978-
netvm = self.qubes_cache.get_vm(name=netvm_name)
979-
netvm = netvm.vm
980-
if check_power and netvm and not netvm.is_running():
981-
reply = QMessageBox.question(
982-
self, self.tr("Qube Start Confirmation"),
983-
self.tr("<br>Can not change netvm to a halted Qube.<br>"
984-
"Do you want to start the Qube <b>'{0}'</b>?").format(
985-
netvm_name),
986-
QMessageBox.StandardButton.Yes |
987-
QMessageBox.StandardButton.Cancel)
1001+
# pylint: disable=possibly-used-before-assignment
1002+
if netvm_name and check_power and netvm and not netvm.is_running():
1003+
reply = QMessageBox.question(
1004+
self, self.tr("Qube Start Confirmation"),
1005+
self.tr("<br>Can not change netvm to a halted Qube.<br>"
1006+
"Do you want to start the Qube <b>'{0}'</b>?").format(
1007+
netvm_name),
1008+
QMessageBox.StandardButton.Yes |
1009+
QMessageBox.StandardButton.Cancel)
9881010

989-
if reply == QMessageBox.StandardButton.Yes:
990-
self.start_vm(netvm, True)
991-
else:
992-
return
1011+
if reply == QMessageBox.StandardButton.Yes:
1012+
self.start_vm(netvm, True)
1013+
else:
1014+
return
9931015

9941016
errors = []
9951017
for info in self.get_selected_vms():

0 commit comments

Comments
 (0)