diff --git a/agents/MeshCentralRouter.exe b/agents/MeshCentralRouter.exe index cf902ccf..34d4e128 100644 Binary files a/agents/MeshCentralRouter.exe and b/agents/MeshCentralRouter.exe differ diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars index cc880aae..c7d21c2a 100644 --- a/views/default-mobile.handlebars +++ b/views/default-mobile.handlebars @@ -259,10 +259,10 @@

Account Security

- - - - + + + +

Account Actions

@@ -720,6 +720,11 @@ QV('verifyEmailId', (userinfo.emailVerified !== true) && (userinfo.email != null) && (serverinfo.emailcheck == true)); QV('manageAuthApp', features & 4096); QV('manageOtp', ((features & 4096) != 0) && ((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0))); + QV('authPhoneNumberCheck', (userinfo.phone != null)); + QV('authEmailSetupCheck', (userinfo.otpekey == 1) && (userinfo.email != null) && (userinfo.emailVerified == true)); + QV('authAppSetupCheck', userinfo.otpsecret == 1); + //QV('authKeySetupCheck', userinfo.otphkeys > 0); + QV('authCodesSetupCheck', userinfo.otpkeys > 0); // On the mobile app, don't allow group creation (for now). QV('p3createMeshLink1', false); @@ -1309,7 +1314,7 @@ function account_manageOtp(action) { if ((xxdialogMode == 2) && (xxdialogTag == 'otpauth-manage')) { dialogclose(0); } - if (xxdialogMode || (userinfo.otpsecret != 1) || ((features & 4096) == 0)) return; + if (xxdialogMode || ((features & 4096) == 0) || ((userinfo.otpsecret != 1) && (userinfo.otphkeys < 1))) return; meshserver.send({ action: 'otpauth-getpasswords', subaction: action }); } diff --git a/webserver.js b/webserver.js index 061e46e5..c35def99 100644 --- a/webserver.js +++ b/webserver.js @@ -4143,7 +4143,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { var email2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.email2factor != false)) && (parent.mailserver != null) && (user.otpekey != null)); var sms2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.sms2factor != false)) && (parent.smsserver != null) && (user.phone != null)); if (s.length != 3) { - try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa })); ws.close(); } catch (e) { } + try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa })); ws.close(); } catch (e) { } } else { checkUserOneTimePassword(req, domain, user, s[2], null, function (result) { if (result == false) {