summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/authentication/u2f/error.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/authentication/u2f/error.js')
-rw-r--r--app/assets/javascripts/authentication/u2f/error.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/assets/javascripts/authentication/u2f/error.js b/app/assets/javascripts/authentication/u2f/error.js
new file mode 100644
index 00000000000..ca0fc0700ad
--- /dev/null
+++ b/app/assets/javascripts/authentication/u2f/error.js
@@ -0,0 +1,26 @@
+import { __ } from '~/locale';
+
+export default class U2FError {
+ constructor(errorCode, u2fFlowType) {
+ this.errorCode = errorCode;
+ this.message = this.message.bind(this);
+ this.httpsDisabled = window.location.protocol !== 'https:';
+ this.u2fFlowType = u2fFlowType;
+ }
+
+ message() {
+ if (this.errorCode === window.u2f.ErrorCodes.BAD_REQUEST && this.httpsDisabled) {
+ return __(
+ 'U2F only works with HTTPS-enabled websites. Contact your administrator for more details.',
+ );
+ } else if (this.errorCode === window.u2f.ErrorCodes.DEVICE_INELIGIBLE) {
+ if (this.u2fFlowType === 'authenticate') {
+ return __('This device has not been registered with us.');
+ }
+ if (this.u2fFlowType === 'register') {
+ return __('This device has already been registered with us.');
+ }
+ }
+ return __('There was a problem communicating with your device.');
+ }
+}