diff --git a/meshuser.js b/meshuser.js index cb146175..9191d433 100644 --- a/meshuser.js +++ b/meshuser.js @@ -1361,7 +1361,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use // Check if the user exists var newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase(), newuser = parent.users[newuserid]; if (newuser == null) { - // TODO: Send error back, user not found. + // Send error back, user not found. + displayNotificationMessage('User "' + EscapeHtml(command.username) + '" not found.', 'Device Group', 'ServerNotify'); break; } diff --git a/package.json b/package.json index 5011b81d..2f092719 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "meshcentral", - "version": "0.3.3-u", + "version": "0.3.3-w", "keywords": [ "Remote Management", "Intel AMT", diff --git a/public/styles/style.css b/public/styles/style.css index b6eecccb..19f2f126 100644 --- a/public/styles/style.css +++ b/public/styles/style.css @@ -315,7 +315,8 @@ body { } #welcomeimage { - text-align: right; + text-align: center; + width:50%; } @media (max-width: 800px) { @@ -331,6 +332,7 @@ body { #logincell { text-align: center; + width:50%; } #loginpanel, #createpanel, #resetpanel, #tokenpanel, #resettokenpanel, #resetpasswordpanel, #resetpasswordpanel { diff --git a/views/default-min.handlebars b/views/default-min.handlebars index 12ca9e14..4768995b 100644 --- a/views/default-min.handlebars +++ b/views/default-min.handlebars @@ -1 +1 @@ - {{{title}}}
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file + {{{title}}}
{{{title}}}
{{{title2}}}

{{{logoutControl}}}

 

\ No newline at end of file diff --git a/views/default.handlebars b/views/default.handlebars index 9f32de2e..85de15a0 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -6270,7 +6270,9 @@ function p20showAddMeshUserDialog() { if (xxdialogMode) return; - var x = "Allow a user to manage this device group and devices in this group

"; + var x = "Allow a user to manage this device group and devices in this group."; + if (features & 0x00080000) { x += " Users need to login to this server once before they can be added to a device group." } + x += "

"; x += addHtmlValue('User Name', ''); x += '
'; x += 'Full Administrator
'; @@ -7379,7 +7381,9 @@ if (node != null) { icon = node.icon; t = '' + node.name + ': ' } } - r += '
X
' + t + n.text + '
'; + r += '
'; + if (icon) { r += '
'; } + r += '
X
' + t + n.text + '
'; } } var deleteall = ''; diff --git a/views/login-min.handlebars b/views/login-min.handlebars index 2c3ee8e5..d39e6160 100644 --- a/views/login-min.handlebars +++ b/views/login-min.handlebars @@ -1 +1 @@ - {{{title}}} - Login
{{{title}}}
{{{title2}}}

Welcome


\ No newline at end of file + {{{title}}} - Login
{{{title}}}
{{{title2}}}

Welcome


\ No newline at end of file diff --git a/views/messenger-min.handlebars b/views/messenger-min.handlebars index afed2cda..bf17d5af 100644 --- a/views/messenger-min.handlebars +++ b/views/messenger-min.handlebars @@ -1 +1 @@ - MeshMessenger
MeshMessenger
\ No newline at end of file + MeshMessenger
MeshMessenger
\ No newline at end of file diff --git a/webserver.js b/webserver.js index c4af5581..1ea4d4ed 100644 --- a/webserver.js +++ b/webserver.js @@ -1336,6 +1336,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { if ((domain.passwordrequirements != null) && (domain.passwordrequirements.hint === true)) { features += 0x00010000; } // Enable password hints if ((parent.config.settings.no2factorauth !== true) && (obj.f2l != null)) { features += 0x00020000; } // Enable WebAuthn/FIDO2 support if ((obj.args.nousers != true) && (domain.passwordrequirements != null) && (domain.passwordrequirements.force2factor === true)) { features += 0x00040000; } // Force 2-factor auth + if ((domain.auth == 'sspi') || (domain.auth == 'ldap')) { features += 0x00080000; } // LDAP or SSPI in use, warn that users must login first before adding a user to a group. // Create a authentication cookie const authCookie = obj.parent.encodeCookie({ userid: user._id, domainid: domain.id }, obj.parent.loginCookieEncryptionKey);