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) {