snappymail/plugins/two-factor-auth/js/TwoFactorAuthLogin.js

33 lines
1.1 KiB
JavaScript
Raw Normal View History

2021-07-23 19:36:38 +08:00
(rl => {
addEventListener('rl-view-model', e => {
if (e.detail && 'Login' === e.detail.viewModelTemplateID) {
2021-07-23 19:36:38 +08:00
const container = e.detail.viewModelDom.querySelector('#plugin-Login-BottomControlGroup'),
placeholder = 'PLUGIN_2FA/LABEL_TWO_FACTOR_CODE';
2021-07-23 19:36:38 +08:00
if (container) {
2021-07-23 21:58:54 +08:00
container.prepend(Element.fromHTML('<div class="controls">'
+ '<span class="fontastic">⏱</span>'
+ '<input name="totp_code" type="text" class="input-block-level"'
+ ' pattern="[0-9]*" inputmode="numeric"'
+ ' autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false"'
+ ' data-bind="textInput: totp, disable: submitRequest" data-i18n="[placeholder]'+placeholder
+ '" placeholder="'+rl.i18n(placeholder)+'">'
2021-07-23 19:36:38 +08:00
+ '</div>'));
}
}
});
// https://github.com/the-djmaze/snappymail/issues/349
let code;
addEventListener('sm-user-login', e => {
code = e.detail.get('totp_code');
});
addEventListener('sm-user-login-response', e => {
if (e.detail && !e.detail.error && rl.settings.get('RequireTwoFactor') && !code) {
document.location.hash = '#/settings/two-factor-auth';
}
});
2021-07-23 19:36:38 +08:00
})(window.rl);