@@ -35,20 +35,13 @@ def _define_menu_options(self) -> list[MenuItem]:
3535 return [
3636 MenuItem (
3737 text = tr ('U2F login setup' ),
38- action = setup_u2f_login ,
38+ action = select_u2f_login ,
3939 value = self ._auth_config .u2f_config ,
4040 preview_action = self ._prev_u2f_login ,
41- dependencies = [self ._depends_on_u2f ],
4241 key = 'u2f_config' ,
4342 ),
4443 ]
4544
46- def _depends_on_u2f (self ) -> bool :
47- devices = Fido2 .get_fido2_devices ()
48- if not devices :
49- return False
50- return True
51-
5245 def _prev_u2f_login (self , item : MenuItem ) -> str | None :
5346 if item .value is not None :
5447 u2f_config : U2FLoginConfiguration = item .value
@@ -60,10 +53,19 @@ def _prev_u2f_login(self, item: MenuItem) -> str | None:
6053 output += tr ('Passwordless sudo: ' ) + (tr ('Enabled' ) if u2f_config .passwordless_sudo else tr ('Disabled' ))
6154
6255 return output
56+
57+ devices = Fido2 .get_fido2_devices ()
58+ if not devices :
59+ return tr ('No U2F devices found' )
60+
6361 return None
6462
6563
66- def setup_u2f_login (preset : U2FLoginConfiguration ) -> U2FLoginConfiguration | None :
64+ def select_u2f_login (preset : U2FLoginConfiguration ) -> U2FLoginConfiguration | None :
65+ devices = Fido2 .get_fido2_devices ()
66+ if not devices :
67+ return None
68+
6769 items = []
6870 for method in U2FLoginMethod :
6971 items .append (MenuItem (method .display_value (), value = method ))
0 commit comments