Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions archinstall/lib/authentication/authentication_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,13 @@ def _define_menu_options(self) -> list[MenuItem]:
return [
MenuItem(
text=tr('U2F login setup'),
action=setup_u2f_login,
action=select_u2f_login,
value=self._auth_config.u2f_config,
preview_action=self._prev_u2f_login,
dependencies=[self._depends_on_u2f],
key='u2f_config',
),
]

def _depends_on_u2f(self) -> bool:
devices = Fido2.get_fido2_devices()
if not devices:
return False
return True

def _prev_u2f_login(self, item: MenuItem) -> str | None:
if item.value is not None:
u2f_config: U2FLoginConfiguration = item.value
Expand All @@ -60,10 +53,19 @@ def _prev_u2f_login(self, item: MenuItem) -> str | None:
output += tr('Passwordless sudo: ') + (tr('Enabled') if u2f_config.passwordless_sudo else tr('Disabled'))

return output

devices = Fido2.get_fido2_devices()
if not devices:
return tr('No U2F devices found')

return None


def setup_u2f_login(preset: U2FLoginConfiguration) -> U2FLoginConfiguration | None:
def select_u2f_login(preset: U2FLoginConfiguration) -> U2FLoginConfiguration | None:
devices = Fido2.get_fido2_devices()
if not devices:
return None

items = []
for method in U2FLoginMethod:
items.append(MenuItem(method.display_value(), value=method))
Expand Down
5 changes: 4 additions & 1 deletion archinstall/lib/disk/fido.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ def get_fido2_devices(cls) -> list[Fido2Device]:

fido_devices = clear_vt100_escape_codes_from_str(ret)

for line in fido_devices.split('\r\n'):
if not fido_devices:
return []

for line in fido_devices.splitlines():
path, details = line.replace(',', '').split(':', maxsplit=1)
_, product, manufacturer = details.strip().split(' ', maxsplit=2)

Expand Down
4 changes: 2 additions & 2 deletions archinstall/lib/installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1506,7 +1506,7 @@ def _add_efistub_bootloader(

parent_dev_path = device_handler.get_parent_device_path(boot_partition.safe_dev_path)

cmd_template = [
cmd_template = (
'efibootmgr',
'--create',
'--disk',
Expand All @@ -1520,7 +1520,7 @@ def _add_efistub_bootloader(
'--unicode',
*cmdline,
'--verbose',
]
)

for kernel in self.kernels:
# Setup the firmware entry
Expand Down