Skip to content

Commit

Permalink
Add localisation strings for FIDO error messages.
Browse files Browse the repository at this point in the history
  • Loading branch information
elibon99 committed Dec 19, 2023
1 parent 624f4aa commit f2dac1d
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 4 deletions.
17 changes: 16 additions & 1 deletion helper/helper/fido.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,14 @@ def __init__(self, retries, auth_blocked):
)


class InactivityException(RpcException):
def __init__(self):
super().__init__(
"user-action-timeout",
"Failed to add fingerprint due to user inactivity.",
)


def _ctap_id(ctap):
return (ctap.info.aaguid, ctap.info.firmware_version)

Expand Down Expand Up @@ -164,7 +172,11 @@ def reset(self, params, event, signal):
self.ctap = Ctap2(connection)
if target != _ctap_id(self.ctap):
raise ValueError("Re-inserted YubiKey does not match initial device")
self.ctap.reset(event=event)
try:
self.ctap.reset(event=event)
except CtapError as e:
if e.code == CtapError.ERR.USER_ACTION_TIMEOUT:
raise InactivityException()
self._info = self.ctap.get_info()
self._auth_blocked = False
self._token = None
Expand Down Expand Up @@ -340,6 +352,9 @@ def add(self, params, event, signal):
signal("capture", dict(remaining=enroller.remaining))
except CaptureError as e:
signal("capture-error", dict(code=e.code))
except CtapError as e:
if e.code == CtapError.ERR.USER_ACTION_TIMEOUT:
raise InactivityException()
if name:
self.bio.set_name(template_id, name)
self._templates[template_id] = name
Expand Down
11 changes: 9 additions & 2 deletions lib/fido/views/add_fingerprint_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,23 @@ class _AddFingerprintDialogState extends ConsumerState<AddFingerprintDialog>
}, onError: (error, stacktrace) {
_log.error('Error adding fingerprint', error, stacktrace);
Navigator.of(context).pop();
final l10n = AppLocalizations.of(context)!;
final String errorMessage;
// TODO: Make this cleaner than importing desktop specific RpcError.
if (error is RpcError) {
errorMessage = error.message;
if (error.status == 'user-action-timeout') {
errorMessage = l10n.l_adding_fp_failed_inactivity;
} else if (error.status == 'connection-error') {
errorMessage = l10n.l_failed_connecting_to_fido;
} else {
errorMessage = error.message;
}
} else {
errorMessage = error.toString();
}
showMessage(
context,
'Error adding fingerprint: $errorMessage',
l10n.l_adding_fingerprint_failed(errorMessage),
duration: const Duration(seconds: 4),
);
});
Expand Down
10 changes: 9 additions & 1 deletion lib/fido/views/reset_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,15 @@ class _ResetDialogState extends ConsumerState<ResetDialog> {
final String errorMessage;
// TODO: Make this cleaner than importing desktop specific RpcError.
if (e is RpcError) {
errorMessage = e.message;
if (e.status == 'connection-error') {
errorMessage = l10n.l_failed_connecting_to_fido;
} else if (e.status == 'invalid-command') {
errorMessage = l10n.l_adding_fp_failed_wrong_yk;
} else if (e.status == 'user-action-timeout') {
errorMessage = l10n.l_adding_fp_failed_inactivity;
} else {
errorMessage = e.message;
}
} else {
errorMessage = e.toString();
}
Expand Down
7 changes: 7 additions & 0 deletions lib/l10n/app_de.arb
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,13 @@
"s_fingerprints": "Fingerabdrücke",
"l_fingerprint_captured": "Fingerabdruck erfolgreich aufgenommen!",
"s_fingerprint_added": "Fingerabdruck hinzugefügt",
"l_adding_fingerprint_failed": null,
"@l_adding_fingerprint_failed": {
"placeholders": {}
},
"l_adding_fp_failed_inactivity": null,
"l_adding_fp_failed_wrong_yk": null,
"l_failed_connecting_to_fido": null,
"l_setting_name_failed": "Fehler beim Setzen des Namens: {message}",
"@l_setting_name_failed": {
"placeholders": {
Expand Down
7 changes: 7 additions & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,13 @@
"s_fingerprints": "Fingerprints",
"l_fingerprint_captured": "Fingerprint captured successfully!",
"s_fingerprint_added": "Fingerprint added",
"l_adding_fingerprint_failed": "Error adding fingerprint: {message}",
"@l_adding_fingerprint_failed": {
"placeholders": {}
},
"l_adding_fp_failed_inactivity": "Failed due to user inactivity",
"l_adding_fp_failed_wrong_yk": "Re-inserted YubiKey does not match initial device",
"l_failed_connecting_to_fido": "Failed connecting to FIDO interface",
"l_setting_name_failed": "Error setting name: {message}",
"@l_setting_name_failed": {
"placeholders": {
Expand Down
7 changes: 7 additions & 0 deletions lib/l10n/app_fr.arb
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,13 @@
"s_fingerprints": "Empreintes",
"l_fingerprint_captured": "Empreinte capturée avec succès!",
"s_fingerprint_added": "Empreinte ajoutée",
"l_adding_fingerprint_failed": null,
"@l_adding_fingerprint_failed": {
"placeholders": {}
},
"l_adding_fp_failed_inactivity": null,
"l_adding_fp_failed_wrong_yk": null,
"l_failed_connecting_to_fido": null,
"l_setting_name_failed": "Erreur lors de l'ajout du nom: {message}",
"@l_setting_name_failed": {
"placeholders": {
Expand Down
7 changes: 7 additions & 0 deletions lib/l10n/app_ja.arb
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,13 @@
"s_fingerprints": "指紋",
"l_fingerprint_captured": "指紋の取得に成功しました!",
"s_fingerprint_added": "指紋が追加されました",
"l_adding_fingerprint_failed": null,
"@l_adding_fingerprint_failed": {
"placeholders": {}
},
"l_adding_fp_failed_inactivity": null,
"l_adding_fp_failed_wrong_yk": null,
"l_failed_connecting_to_fido": null,
"l_setting_name_failed": "名前設定時名エラー:{message}",
"@l_setting_name_failed": {
"placeholders": {
Expand Down
7 changes: 7 additions & 0 deletions lib/l10n/app_pl.arb
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,13 @@
"s_fingerprints": "Odciski palców",
"l_fingerprint_captured": "Odcisk palca zarejestrowany pomyślnie!",
"s_fingerprint_added": "Dodano odcisk palca",
"l_adding_fingerprint_failed": null,
"@l_adding_fingerprint_failed": {
"placeholders": {}
},
"l_adding_fp_failed_inactivity": null,
"l_adding_fp_failed_wrong_yk": null,
"l_failed_connecting_to_fido": null,
"l_setting_name_failed": "Błąd ustawienia nazwy: {message}",
"@l_setting_name_failed": {
"placeholders": {
Expand Down

0 comments on commit f2dac1d

Please sign in to comment.