Skip to content
This repository was archived by the owner on Jun 25, 2024. It is now read-only.

Commit 5b8a5b0

Browse files
committed
Begin adding error messages (and translations) for various errors
1 parent 95476b1 commit 5b8a5b0

2 files changed

Lines changed: 33 additions & 4 deletions

File tree

dictionaries/mfa.definition.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@
114114
"fr": "Quelque chose s'est mal passé avec cette demande, impossible de vérifier pour le moment.",
115115
"ko": "요청에 문제가 발생하여 지금은 확인할 수 없습니다."
116116
},
117+
"webauthn_error_unknown": {
118+
"en": "Something went wrong with that request, unable to verify at this time.",
119+
"es": "Algo salió mal con esa solicitud, no se pudo verificar en este momento.",
120+
"fr": "Quelque chose s'est mal passé avec cette demande, impossible de vérifier pour le moment.",
121+
"ko": "요청에 문제가 발생하여 지금은 확인할 수 없습니다."
122+
},
117123
"u2f_error_wrong_key": {
118124
"en": "This may not be the correct key for this site.",
119125
"es": "Esta puede no ser la clave correcta para este sitio.",
@@ -126,6 +132,18 @@
126132
"fr": "Cela a pris un peu trop de temps, vérifiez que votre clé est insérée dans le bons sens.",
127133
"ko": "오랜 시간이 경과 되었으니 키가 오른쪽 위로 삽입되었는지 확인 하십시오."
128134
},
135+
"webauthn_error_abort": {
136+
"en": "It looks like you clicked cancel. Would you like us to try again?",
137+
"es": "",
138+
"fr": "",
139+
"ko": ""
140+
},
141+
"webauthn_error_not_allowed": {
142+
"en": "Something about that didn't work. Please ensure that your security key is plugged in and that you touch it within 60 seconds when it blinks.",
143+
"es": "",
144+
"fr": "",
145+
"ko": ""
146+
},
129147
"manager_icon": {
130148
"en": "Recovery contact icon",
131149
"es": "Icono de contacto de recuperación",

themes/material/mfa/prompt-for-mfa-webauthn.php

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,28 @@ function verifyWebAuthn() {
1616
SimpleWebAuthnBrowser.startAuthentication(loginChallenge.publicKey).then(submitForm).catch(handleError);
1717
}
1818

19-
function handleError(errorMessage) {
20-
console.error('errorMessage', errorMessage); // TEMP
19+
function handleError(error) {
20+
console.error(error)
21+
const errorMessage = createMessage(error)
2122

2223
const errorNode = document.querySelector('p.error');
23-
2424
errorNode.classList.remove('hide');
2525
errorNode.querySelector('span').textContent = errorMessage;
2626

2727
offerRetry();
2828
}
29-
29+
30+
function createMessage (error) {
31+
switch (error.name) {
32+
case 'AbortError':
33+
return <?= json_encode($this->t('{material:mfa:webauthn_error_abort}')) ?>;
34+
case 'NotAllowedError':
35+
return <?= json_encode($this->t('{material:mfa:webauthn_error_not_allowed}')) ?>;
36+
default:
37+
return <?= json_encode($this->t('{material:mfa:webauthn_error_unknown}')) ?>;
38+
}
39+
}
40+
3041
function offerRetry() {
3142
const retryButton = document.querySelector('.mdl-button.mdl-color-text--red');
3243

0 commit comments

Comments
 (0)