Skip to content

Commit 4d8bf33

Browse files
committed
Allow fewer qubes to use the U2F proxy
1 parent 9a86cce commit 4d8bf33

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

qubes_config/global_config/usb_devices.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from qubesadmin.device_protocol import DeviceCategory
2828

2929
from ..widgets.gtk_widgets import TokenName, TextModeler, VMListModeler
30-
from ..widgets.utils import get_feature, apply_feature_change
30+
from ..widgets.utils import get_feature, get_boolean_feature, apply_feature_change
3131
from ..widgets.gtk_utils import ask_question, show_error
3232
from .page_handler import PageHandler
3333
from .policy_rules import RuleTargetedAdminVM, Rule
@@ -465,13 +465,16 @@ def load_rules_for_usb_qube(self):
465465
self.error_handler.clear_all_errors()
466466

467467
for vm in self.qapp.domains:
468-
if vm.features.check_with_template(self.SUPPORTED_SERVICE_FEATURE):
469-
if vm == usb_qube:
470-
continue
468+
if vm.features.check_with_template(self.SUPPORTED_SERVICE_FEATURE) and not (
469+
vm == usb_qube
470+
or vm.klass == "TemplateVM"
471+
or getattr(vm, "template_for_dispvms", False)
472+
or getattr(vm, "provides_network", False)
473+
or get_boolean_feature(vm, "service.audiovm")
474+
or get_boolean_feature(vm, "service.guivm")
475+
):
471476
self.available_vms.append(vm)
472-
if get_feature(vm, self.SERVICE_FEATURE):
473-
if vm == usb_qube:
474-
continue
477+
if get_feature(vm, self.SERVICE_FEATURE) and not vm == usb_qube:
475478
self.initially_enabled_vms.append(vm)
476479

477480
if not self.available_vms:

qubes_config/tests/test_usb_devices.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -981,6 +981,12 @@ def test_devices_handler_unsaved(test_qapp, test_policy_manager, real_builder):
981981
b"_function='0' _bus='00' _libvirt_name='pci_0000_00_0d_0' "
982982
b"_device='0d'\n"
983983
)
984+
test_qapp.expected_calls[
985+
("test-vm", "admin.vm.feature.Get", "service.audiovm", None)
986+
] = b"0\x00"
987+
test_qapp.expected_calls[
988+
("test-vm", "admin.vm.feature.Get", "service.guivm", None)
989+
] = b"0\x00"
984990

985991
handler = DevicesHandler(test_qapp, test_policy_manager, real_builder)
986992

@@ -1023,6 +1029,12 @@ def test_devices_handler_detect_usbvms(test_qapp, test_policy_manager, real_buil
10231029
b"_function='0' _bus='00' _libvirt_name='pci_0000_00_0d_0' "
10241030
b"_device='0d'\n"
10251031
)
1032+
test_qapp.expected_calls[
1033+
("test-vm", "admin.vm.feature.Get", "service.audiovm", None)
1034+
] = b"0\x00"
1035+
test_qapp.expected_calls[
1036+
("test-vm", "admin.vm.feature.Get", "service.guivm", None)
1037+
] = b"0\x00"
10261038

10271039
handler = DevicesHandler(test_qapp, test_policy_manager, real_builder)
10281040

0 commit comments

Comments
 (0)