diff --git a/views/message.handlebars b/views/message.handlebars index 821a2c7a..18429818 100644 --- a/views/message.handlebars +++ b/views/message.handlebars @@ -76,7 +76,7 @@ case 10: { msg = "ERROR: Invalid account check, verification url is only valid for 30 minutes."; break; } case 11: { msg = "Sharing link not valid yet."; break; } case 12: { msg = "Sharing link is expired."; break; } - case 13: { msg = "If you are an administrator, [login here].".replace('[', '').replace(']', ''); break; } + case 13: { msg = "If you are an administrator, [login here].".replace('[', '').replace(']', ''); break; } case 14: { msg = '' + "Click here to reset your account password." + ''; break; } } diff --git a/views/message2.handlebars b/views/message2.handlebars index a6626c4e..7f59f8f5 100644 --- a/views/message2.handlebars +++ b/views/message2.handlebars @@ -77,7 +77,7 @@ case 10: { msg = "ERROR: Invalid account check, verification url is only valid for 30 minutes."; break; } case 11: { msg = "Sharing link not valid yet."; break; } case 12: { msg = "Sharing link is expired."; break; } - case 13: { msg = "If you are an administrator, [login here].".replace('[', '').replace(']', ''); break; } + case 13: { msg = "If you are an administrator, [login here].".replace('[', '').replace(']', ''); break; } case 14: { msg = '' + "Click here to reset your account password." + ''; break; } } diff --git a/webserver.js b/webserver.js index a8c2db14..17881d8b 100644 --- a/webserver.js +++ b/webserver.js @@ -1841,7 +1841,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { if ((domain.loginkey != null) && (domain.loginkey.indexOf(req.query.key) == -1)) { res.sendStatus(404); return; } // Check 3FA URL key // Check if we are in maintenance mode - if ((parent.config.settings.maintenancemode != null) && (req.query.admin !== '1')) { + if ((parent.config.settings.maintenancemode != null) && (req.query.loginscreen !== '1')) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 3, msgid: 13, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; } @@ -2391,7 +2391,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { if ((req.session != null) && (typeof req.session.expire == 'number') && ((req.session.expire - Date.now()) <= 0)) { for (var i in req.session) { delete req.session[i]; } } // Check if we are in maintenance mode - if ((parent.config.settings.maintenancemode != null) && (req.query.admin !== '1')) { + if ((parent.config.settings.maintenancemode != null) && (req.query.loginscreen !== '1')) { parent.debug('web', 'handleLoginRequest: Server under maintenance.'); render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 3, msgid: 13, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; @@ -2552,6 +2552,14 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { if (req.session && req.session.userid && obj.users[req.session.userid]) { const user = obj.users[req.session.userid]; + // Check if we are in maintenance mode + if ((parent.config.settings.maintenancemode != null) && (user.siteadmin != 4294967295)) { + req.session.messageid = 115; // Server under maintenance + req.session.loginmode = 1; + res.redirect(domain.url); + return; + } + // If the request has a "meshmessengerid", redirect to MeshMessenger // This situation happens when you get a push notification for a chat session, but are not logged in. if (req.query.meshmessengerid != null) {