diff --git a/meshuser.js b/meshuser.js
index eab3f4bf..9679959a 100644
--- a/meshuser.js
+++ b/meshuser.js
@@ -64,6 +64,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
obj.domain = domain;
obj.ws = ws;
+ // Check if we are a cross-domain administrator
+ if (parent.parent.config.settings.managecrossdomain && (parent.parent.config.settings.managecrossdomain.indexOf(user._id) >= 0)) { obj.crossDomain = true; }
+
// Server side Intel AMT stack
const WsmanComm = require('./amt/amt-wsman-comm.js');
const Wsman = require('./amt/amt-wsman.js');
@@ -281,7 +284,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
// Handle events
ws.HandleEvent = function (source, event, ids, id) {
- if ((event.domain == null) || (event.domain == domain.id)) {
+ if ((event.domain == null) || (event.domain == domain.id) || (obj.crossDomain === true)) {
try {
if (event == 'close') { try { delete req.session; } catch (ex) { } obj.close(); }
else if (event == 'resubscribe') { user.subscriptions = parent.subscribe(user._id, ws); }
@@ -400,7 +403,10 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
// Send user information to web socket, this is the first thing we send
try {
var xuserinfo = parent.CloneSafeUser(parent.users[user._id]);
- if ((user.siteadmin == 0xFFFFFFFF) && (parent.parent.config.settings.managealldevicegroups.indexOf(user._id) >= 0)) { xuserinfo.manageAllDeviceGroups = true; }
+ if (user.siteadmin == 0xFFFFFFFF) {
+ if (parent.parent.config.settings.managealldevicegroups.indexOf(user._id) >= 0) { xuserinfo.manageAllDeviceGroups = true; }
+ if (obj.crossDomain === true) { xuserinfo.crossDomain = []; for (var i in parent.parent.config.domains) { xuserinfo.crossDomain.push(i); } }
+ }
ws.send(JSON.stringify({ action: 'userinfo', userinfo: xuserinfo }));
} catch (ex) { }
@@ -1291,9 +1297,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
if ((user.siteadmin & 2) == 0) break;
var docs = [];
for (i in parent.users) {
- if ((parent.users[i].domain == domain.id) && (parent.users[i].name != '~')) {
+ if (((obj.crossDomain === true) || (parent.users[i].domain == domain.id)) && (parent.users[i].name != '~')) {
// If we are part of a user group, we can only see other members of our own group
- if ((user.groups == null) || (user.groups.length == 0) || ((parent.users[i].groups != null) && (findOne(parent.users[i].groups, user.groups)))) {
+ if ((obj.crossDomain === true) || (user.groups == null) || (user.groups.length == 0) || ((parent.users[i].groups != null) && (findOne(parent.users[i].groups, user.groups)))) {
docs.push(parent.CloneSafeUser(parent.users[i]));
}
}
@@ -1430,8 +1436,10 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
}
case 'deleteuser':
{
+ console.log(command);
+
// Delete a user account
- var err = null, delusersplit, deluserid, deluser;
+ var err = null, delusersplit, deluserid, deluser, deluserdomain;
try {
if ((user.siteadmin & 2) == 0) { err = 'Permission denied'; }
else if (common.validateString(command.userid, 1, 2048) == false) { err = 'Invalid userid'; }
@@ -1440,12 +1448,17 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
deluserid = command.userid;
deluser = parent.users[deluserid];
if (deluser == null) { err = 'User does not exists'; }
- else if ((delusersplit.length != 3) || (delusersplit[1] != domain.id)) { err = 'Invalid domain'; } // Invalid domain, operation only valid for current domain
+ else if ((obj.crossDomain !== true) && ((delusersplit.length != 3) || (delusersplit[1] != domain.id))) { err = 'Invalid domain'; } // Invalid domain, operation only valid for current domain
else if ((deluser.siteadmin == 0xFFFFFFFF) && (user.siteadmin != 0xFFFFFFFF)) { err = 'Permission denied'; } // Need full admin to remote another administrator
- else if ((user.groups != null) && (user.groups.length > 0) && ((deluser.groups == null) || (findOne(deluser.groups, user.groups) == false))) { err = 'Invalid user group'; } // Can only perform this operation on other users of our group.
+ else if ((obj.crossDomain !== true) && (user.groups != null) && (user.groups.length > 0) && ((deluser.groups == null) || (findOne(deluser.groups, user.groups) == false))) { err = 'Invalid user group'; } // Can only perform this operation on other users of our group.
}
} catch (ex) { err = 'Validation exception: ' + ex; }
+ // Get domain
+ deluserdomain = domain;
+ if (obj.crossDomain === true) { deluserdomain = parent.parent.config.domains[delusersplit[1]]; }
+ if (deluserdomain == null) { err = 'Invalid domain'; }
+
// Handle any errors
if (err != null) {
if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'deleteuser', responseid: command.responseid, result: err })); } catch (ex) { } }
@@ -1464,13 +1477,13 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
// Notify mesh change
change = 'Removed user ' + deluser.name + ' from group ' + mesh.name;
- var event = { etype: 'mesh', userid: user._id, username: user.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: change, domain: domain.id, invite: mesh.invite };
+ var event = { etype: 'mesh', userid: user._id, username: user.name, meshid: mesh._id, name: mesh.name, mtype: mesh.mtype, desc: mesh.desc, action: 'meshchange', links: mesh.links, msg: change, domain: deluserdomain.id, invite: mesh.invite };
if (db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to change the mesh. Another event will come.
parent.parent.DispatchEvent(parent.CreateMeshDispatchTargets(mesh, [deluser._id, user._id]), obj, event);
}
} else if (i.startsWith('node/')) {
// Get the node and the rights for this node
- parent.GetNodeWithRights(domain, deluser, i, function (node, rights, visible) {
+ parent.GetNodeWithRights(deluserdomain, deluser, i, function (node, rights, visible) {
if ((node == null) || (node.links == null) || (node.links[deluser._id] == null)) return;
// Remove the link and save the node to the database
@@ -1479,7 +1492,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
db.Set(parent.cleanDevice(node));
// Event the node change
- var event = { etype: 'node', userid: user._id, username: user.name, action: 'changenode', nodeid: node._id, domain: domain.id, msg: (command.rights == 0) ? ('Removed user device rights for ' + node.name) : ('Changed user device rights for ' + node.name), node: parent.CloneSafeNode(node) }
+ var event = { etype: 'node', userid: user._id, username: user.name, action: 'changenode', nodeid: node._id, domain: deluserdomain.id, msg: (command.rights == 0) ? ('Removed user device rights for ' + node.name) : ('Changed user device rights for ' + node.name), node: parent.CloneSafeNode(node) }
if (db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to change the mesh. Another event will come.
parent.parent.DispatchEvent(parent.CreateNodeDispatchTargets(node.meshid, node._id), obj, event);
});
@@ -1503,7 +1516,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
var targets = ['*', 'server-users'];
if (deluser.groups) { for (var i in deluser.groups) { targets.push('server-users:' + i); } }
- parent.parent.DispatchEvent(targets, obj, { etype: 'user', userid: deluserid, username: deluser.name, action: 'accountremove', msg: 'Account removed', domain: domain.id });
+ parent.parent.DispatchEvent(targets, obj, { etype: 'user', userid: deluserid, username: deluser.name, action: 'accountremove', msg: 'Account removed', domain: deluserdomain.id });
parent.parent.DispatchEvent([deluserid], obj, 'close');
if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'deleteuser', responseid: command.responseid, result: 'ok' })); } catch (ex) { } }
@@ -1634,23 +1647,26 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
if (command.randomPassword === true) { command.pass = getRandomPassword(); }
// Add a new user account
- var err = null, newusername, newuserid;
+ var err = null, newusername, newuserid, newuserdomain;
try {
if ((user.siteadmin & 2) == 0) { err = 'Permission denied'; }
- else if ((domain.auth == 'sspi') || (domain.auth == 'ldap')) { err = 'Unable to add user in this mode'; }
else if (common.validateUsername(command.username, 1, 256) == false) { err = 'Invalid username'; } // Username is between 1 and 64 characters, no spaces
else if ((command.username[0] == '~') || (command.username.indexOf('/') >= 0)) { err = 'Invalid username'; } // Usernames cant' start with ~ and can't have '/'
else if (common.validateString(command.pass, 1, 256) == false) { err = 'Invalid password'; } // Password is between 1 and 256 characters
else if ((command.randomPassword !== true) && (common.checkPasswordRequirements(command.pass, domain.passwordrequirements) == false)) { err = 'Invalid password'; } // Password does not meet requirements
else if ((command.email != null) && (common.validateEmail(command.email, 1, 1024) == false)) { err = 'Invalid email'; } // Check if this is a valid email address
+ else if ((obj.crossDomain === true) && (command.domain != null) && ((typeof command.domain != 'string') || (parent.parent.config.domains[command.domain] == null))) { err = 'Invalid domain'; } // Check if this is a valid domain
else {
+ newuserdomain = domain;
+ if ((obj.crossDomain === true) && (command.domain != null)) { newuserdomain = parent.parent.config.domains[command.domain]; }
newusername = command.username;
- newuserid = 'user/' + domain.id + '/' + command.username.toLowerCase();
+ newuserid = 'user/' + newuserdomain.id + '/' + command.username.toLowerCase();
if (command.siteadmin != null) {
if ((typeof command.siteadmin != 'number') || (Number.isInteger(command.siteadmin) == false)) { err = 'Invalid site permissions'; } // Check permissions
else if ((user.siteadmin != 0xFFFFFFFF) && ((command.siteadmin & (0xFFFFFFFF - 224)) != 0)) { err = 'Invalid site permissions'; }
}
if (parent.users[newuserid]) { err = 'User already exists'; } // Account already exists
+ else if ((newuserdomain.auth == 'sspi') || (newuserdomain.auth == 'ldap')) { err = 'Unable to add user in this mode'; }
}
} catch (ex) { err = 'Validation exception'; }
@@ -1666,7 +1682,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
}
// Check if we exceed the maximum number of user accounts
- db.isMaxType(domain.limits.maxuseraccounts, 'user', domain.id, function (maxExceed) {
+ db.isMaxType(newuserdomain.limits.maxuseraccounts, 'user', newuserdomain.id, function (maxExceed) {
if (maxExceed) {
// Account count exceed, do notification
if (command.responseid != null) {
@@ -1674,21 +1690,21 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
try { ws.send(JSON.stringify({ action: 'adduser', responseid: command.responseid, result: 'maxUsersExceed' })); } catch (ex) { }
} else {
// Create the notification message
- var notification = { action: 'msg', type: 'notify', id: Math.random(), value: "Account limit reached.", title: "Server Limit", userid: user._id, username: user.name, domain: domain.id };
+ var notification = { action: 'msg', type: 'notify', id: Math.random(), value: "Account limit reached.", title: "Server Limit", userid: user._id, username: user.name, domain: newuserdomain.id };
// Get the list of sessions for this user
var sessions = parent.wssessions[user._id];
- if (sessions != null) { for (i in sessions) { try { if (sessions[i].domainid == domain.id) { sessions[i].send(JSON.stringify(notification)); } } catch (ex) { } } }
+ if (sessions != null) { for (i in sessions) { try { if (sessions[i].domainid == newuserdomain.id) { sessions[i].send(JSON.stringify(notification)); } } catch (ex) { } } }
// TODO: Notify all sessions on other peers.
}
} else {
// Remove any events for this userid
- if (command.removeEvents === true) { db.RemoveAllUserEvents(domain.id, newuserid); }
+ if (command.removeEvents === true) { db.RemoveAllUserEvents(newuserdomain.id, newuserid); }
// Create a new user
- var newuser = { type: 'user', _id: newuserid, name: newusername, creation: Math.floor(Date.now() / 1000), domain: domain.id };
+ var newuser = { type: 'user', _id: newuserid, name: newusername, creation: Math.floor(Date.now() / 1000), domain: newuserdomain.id };
if (command.siteadmin != null) { newuser.siteadmin = command.siteadmin; }
- else if (domain.newaccountsrights) { newuser.siteadmin = domain.newaccountsrights; }
+ else if (newuserdomain.newaccountsrights) { newuser.siteadmin = newuserdomain.newaccountsrights; }
if (command.email != null) { newuser.email = command.email.toLowerCase(); if (command.emailVerified === true) { newuser.emailVerified = true; } } // Email
if (command.resetNextLogin === true) { newuser.passchange = -1; } else { newuser.passchange = Math.floor(Date.now() / 1000); }
if (user.groups) { newuser.groups = user.groups; } // New accounts are automatically part of our groups (Realms).
@@ -1705,16 +1721,16 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
var event, targets = ['*', 'server-users'];
if (newuser.groups) { for (var i in newuser.groups) { targets.push('server-users:' + i); } }
if (command.email == null) {
- event = { etype: 'user', userid: newuser._id, username: newusername, account: parent.CloneSafeUser(newuser), action: 'accountcreate', msg: 'Account created, username is ' + command.username, domain: domain.id };
+ event = { etype: 'user', userid: newuser._id, username: newusername, account: parent.CloneSafeUser(newuser), action: 'accountcreate', msg: 'Account created, username is ' + command.username, domain: newuserdomain.id };
} else {
- event = { etype: 'user', userid: newuser._id, username: newusername, account: parent.CloneSafeUser(newuser), action: 'accountcreate', msg: 'Account created, email is ' + command.email.toLowerCase(), domain: domain.id };
+ event = { etype: 'user', userid: newuser._id, username: newusername, account: parent.CloneSafeUser(newuser), action: 'accountcreate', msg: 'Account created, email is ' + command.email.toLowerCase(), domain: newuserdomain.id };
}
if (parent.db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to create the user. Another event will come.
parent.parent.DispatchEvent(targets, obj, event);
// Perform email invitation
if ((command.emailInvitation == true) && (command.emailVerified == true) && command.email && parent.parent.mailserver) {
- parent.parent.mailserver.sendAccountInviteMail(domain, user.name, newusername, command.email.toLowerCase(), command.pass, parent.getLanguageCodes(req));
+ parent.parent.mailserver.sendAccountInviteMail(newuserdomain, user.name, newusername, command.email.toLowerCase(), command.pass, parent.getLanguageCodes(req));
}
// Log in the auth log
@@ -1732,78 +1748,85 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
}
case 'edituser':
{
+ // Must be user administrator or edit self.
+ if (((user.siteadmin & 2) == 0) && (user._id != command.id)) break;
+
// Edit a user account, may involve changing email or administrator permissions
- if (((user.siteadmin & 2) != 0) || (user._id == command.id)) {
- var chguser = parent.users[command.id];
- change = 0;
- if (chguser) {
- // If the target user is admin and we are not admin, no changes can be made.
- if ((chguser.siteadmin == 0xFFFFFFFF) && (user.siteadmin != 0xFFFFFFFF)) return;
+ var chguser = parent.users[command.id];
+ change = 0;
+ if (chguser) {
+ // If the target user is admin and we are not admin, no changes can be made.
+ if ((chguser.siteadmin == 0xFFFFFFFF) && (user.siteadmin != 0xFFFFFFFF)) return;
- // Can only perform this operation on other users of our group.
- if (user.siteadmin != 0xFFFFFFFF) {
- if ((user.groups != null) && (user.groups.length > 0) && ((chguser.groups == null) || (findOne(chguser.groups, user.groups) == false))) return;
- }
+ // Can only perform this operation on other users of our group.
+ if (user.siteadmin != 0xFFFFFFFF) {
+ if ((user.groups != null) && (user.groups.length > 0) && ((chguser.groups == null) || (findOne(chguser.groups, user.groups) == false))) return;
+ }
- // Validate and change email
- if (domain.usernameisemail !== true) {
- if (common.validateString(command.email, 1, 1024) && (chguser.email != command.email)) { chguser.email = command.email.toLowerCase(); change = 1; }
- }
+ // Fetch and validate the user domain
+ var edituserdomainid = command.id.split('/')[1];
+ if ((obj.crossDomain !== true) && (edituserdomainid != domain.id)) break;
+ var edituserdomain = parent.parent.config.domains[edituserdomainid];
+ if (edituserdomain == null) break;
- // Make changes
- if ((command.emailVerified === true || command.emailVerified === false) && (chguser.emailVerified != command.emailVerified)) { chguser.emailVerified = command.emailVerified; change = 1; }
- if ((common.validateInt(command.quota, 0) || command.quota == null) && (command.quota != chguser.quota)) { chguser.quota = command.quota; if (chguser.quota == null) { delete chguser.quota; } change = 1; }
- if ((command.consent != null) && (typeof command.consent == 'number')) { if (command.consent == 0) { delete chguser.consent; } else { chguser.consent = command.consent; } change = 1; }
- if ((command.phone != null) && (typeof command.phone == 'string') && ((command.phone == '') || isPhoneNumber(command.phone))) { if (command.phone == '') { delete chguser.phone; } else { chguser.phone = command.phone; } change = 1; }
+ // Validate and change email
+ if (edituserdomain.usernameisemail !== true) {
+ if (common.validateString(command.email, 1, 1024) && (chguser.email != command.email)) { chguser.email = command.email.toLowerCase(); change = 1; }
+ }
- // Site admins can change any server rights, user managers can only change AccountLock, NoMeshCmd and NoNewGroups
- if (chguser._id !== user._id) { // We can't change our own siteadmin permissions.
- var chgusersiteadmin = chguser.siteadmin ? chguser.siteadmin : 0;
- if (((user.siteadmin == 0xFFFFFFFF) || ((user.siteadmin & 2) && (((chgusersiteadmin ^ command.siteadmin) & 0xFFFFFF1F) == 0))) && common.validateInt(command.siteadmin) && (chguser.siteadmin != command.siteadmin)) { chguser.siteadmin = command.siteadmin; change = 1; }
- }
+ // Make changes
+ if ((command.emailVerified === true || command.emailVerified === false) && (chguser.emailVerified != command.emailVerified)) { chguser.emailVerified = command.emailVerified; change = 1; }
+ if ((common.validateInt(command.quota, 0) || command.quota == null) && (command.quota != chguser.quota)) { chguser.quota = command.quota; if (chguser.quota == null) { delete chguser.quota; } change = 1; }
+ if ((command.consent != null) && (typeof command.consent == 'number')) { if (command.consent == 0) { delete chguser.consent; } else { chguser.consent = command.consent; } change = 1; }
+ if ((command.phone != null) && (typeof command.phone == 'string') && ((command.phone == '') || isPhoneNumber(command.phone))) { if (command.phone == '') { delete chguser.phone; } else { chguser.phone = command.phone; } change = 1; }
- // When sending a notification about a group change, we need to send to all the previous and new groups.
- var allTargetGroups = chguser.groups;
- if ((Array.isArray(command.groups)) && ((user._id != command.id) || (user.siteadmin == 0xFFFFFFFF))) {
- if (command.groups.length == 0) {
- // Remove the user groups
- if (chguser.groups != null) { delete chguser.groups; change = 1; }
- } else {
- // Arrange the user groups
- var groups2 = [];
- for (var i in command.groups) {
- if (typeof command.groups[i] == 'string') {
- var gname = command.groups[i].trim().toLowerCase();
- if ((gname.length > 0) && (gname.length <= 64) && (groups2.indexOf(gname) == -1)) { groups2.push(gname); }
- }
+ // Site admins can change any server rights, user managers can only change AccountLock, NoMeshCmd and NoNewGroups
+ if (chguser._id !== user._id) { // We can't change our own siteadmin permissions.
+ var chgusersiteadmin = chguser.siteadmin ? chguser.siteadmin : 0;
+ if (((user.siteadmin == 0xFFFFFFFF) || ((user.siteadmin & 2) && (((chgusersiteadmin ^ command.siteadmin) & 0xFFFFFF1F) == 0))) && common.validateInt(command.siteadmin) && (chguser.siteadmin != command.siteadmin)) { chguser.siteadmin = command.siteadmin; change = 1; }
+ }
+
+ // When sending a notification about a group change, we need to send to all the previous and new groups.
+ var allTargetGroups = chguser.groups;
+ if ((Array.isArray(command.groups)) && ((user._id != command.id) || (user.siteadmin == 0xFFFFFFFF))) {
+ if (command.groups.length == 0) {
+ // Remove the user groups
+ if (chguser.groups != null) { delete chguser.groups; change = 1; }
+ } else {
+ // Arrange the user groups
+ var groups2 = [];
+ for (var i in command.groups) {
+ if (typeof command.groups[i] == 'string') {
+ var gname = command.groups[i].trim().toLowerCase();
+ if ((gname.length > 0) && (gname.length <= 64) && (groups2.indexOf(gname) == -1)) { groups2.push(gname); }
}
- groups2.sort();
-
- // Set the user groups (Realms)
- if (chguser.groups != groups2) { chguser.groups = groups2; change = 1; }
-
- // Add any missing groups in the target list
- if (allTargetGroups == null) { allTargetGroups = []; }
- for (var i in groups2) { if (allTargetGroups.indexOf(i) == -1) { allTargetGroups.push(i); } }
}
- }
+ groups2.sort();
- if (change == 1) {
- // Update the user
- db.SetUser(chguser);
- parent.parent.DispatchEvent([chguser._id], obj, 'resubscribe');
+ // Set the user groups (Realms)
+ if (chguser.groups != groups2) { chguser.groups = groups2; change = 1; }
- var targets = ['*', 'server-users', user._id, chguser._id];
- if (allTargetGroups) { for (var i in allTargetGroups) { targets.push('server-users:' + i); } }
- var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(chguser), action: 'accountchange', msg: 'Account changed: ' + chguser.name, domain: domain.id };
- if (db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to change the user. Another event will come.
- parent.parent.DispatchEvent(targets, obj, event);
- }
- if ((chguser.siteadmin) && (chguser.siteadmin != 0xFFFFFFFF) && (chguser.siteadmin & 32)) {
- // If the user is locked out of this account, disconnect now
- parent.parent.DispatchEvent([chguser._id], obj, 'close'); // Disconnect all this user's sessions
+ // Add any missing groups in the target list
+ if (allTargetGroups == null) { allTargetGroups = []; }
+ for (var i in groups2) { if (allTargetGroups.indexOf(i) == -1) { allTargetGroups.push(i); } }
}
}
+
+ if (change == 1) {
+ // Update the user
+ db.SetUser(chguser);
+ parent.parent.DispatchEvent([chguser._id], obj, 'resubscribe');
+
+ var targets = ['*', 'server-users', user._id, chguser._id];
+ if (allTargetGroups) { for (var i in allTargetGroups) { targets.push('server-users:' + i); } }
+ var event = { etype: 'user', userid: user._id, username: user.name, account: parent.CloneSafeUser(chguser), action: 'accountchange', msg: 'Account changed: ' + chguser.name, domain: edituserdomain.id };
+ if (db.changeStream) { event.noact = 1; } // If DB change stream is active, don't use this event to change the user. Another event will come.
+ parent.parent.DispatchEvent(targets, obj, event);
+ }
+ if ((chguser.siteadmin) && (chguser.siteadmin != 0xFFFFFFFF) && (chguser.siteadmin & 32)) {
+ // If the user is locked out of this account, disconnect now
+ parent.parent.DispatchEvent([chguser._id], obj, 'close'); // Disconnect all this user's sessions
+ }
}
break;
}
diff --git a/sample-config-advanced.json b/sample-config-advanced.json
index a00d2b51..91fdc59d 100644
--- a/sample-config-advanced.json
+++ b/sample-config-advanced.json
@@ -52,6 +52,8 @@
"_AgentAllowedIP": "192.168.0.100/24",
"_AgentBlockedIP": "127.0.0.1,::1",
"_AuthLog": "c:\\temp\\auth.log",
+ "_ManageAllDeviceGroups": [ "user//admin" ],
+ "_ManageCrossDomain": [ "user//admin" ],
"_LocalDiscovery": {
"name": "Local server name",
"info": "Information about this server"
@@ -104,7 +106,6 @@
"_UserNameIsEmail": true,
"_NewAccountEmailDomains": [ "sample.com" ],
"_NewAccountsRights": [ "nonewgroups", "notools" ],
- "_ManageAllDeviceGroups": [ "admin" ],
"_WelcomeText": "Sample Text on Login Page.",
"_WelcomePicture": "mainwelcome.jpg",
"___Hide__": "Sum of: 1 = Hide header, 2 = Hide tab, 4 = Hide footer, 8 = Hide title, 16 = Hide left bar",
diff --git a/translate/translate.json b/translate/translate.json
index ac829298..38d93762 100644
--- a/translate/translate.json
+++ b/translate/translate.json
@@ -192,7 +192,7 @@
"zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。",
"xloc": [
"default.handlebars->25->1258",
- "default.handlebars->25->1564"
+ "default.handlebars->25->1566"
]
},
{
@@ -619,7 +619,7 @@
"default-mobile.handlebars->9->108",
"default-mobile.handlebars->9->284",
"default.handlebars->25->1365",
- "default.handlebars->25->1709",
+ "default.handlebars->25->1712",
"default.handlebars->25->750"
]
},
@@ -669,7 +669,7 @@
"ru": "1 активная сессия",
"zh-chs": "1個活動會話",
"xloc": [
- "default.handlebars->25->1627"
+ "default.handlebars->25->1630"
]
},
{
@@ -731,7 +731,7 @@
"ru": "1 группа",
"zh-chs": "1組",
"xloc": [
- "default.handlebars->25->1592"
+ "default.handlebars->25->1595"
]
},
{
@@ -1131,7 +1131,7 @@
"zh-chs": "啟用第二因素身份驗證",
"xloc": [
"default.handlebars->25->1436",
- "default.handlebars->25->1614"
+ "default.handlebars->25->1617"
]
},
{
@@ -1878,7 +1878,7 @@
"ru": "Доступ к файлам сервера",
"zh-chs": "訪問服務器文件",
"xloc": [
- "default.handlebars->25->1570"
+ "default.handlebars->25->1572"
]
},
{
@@ -2003,7 +2003,7 @@
"zh-chs": "帐户已被锁定",
"xloc": [
"default.handlebars->25->1438",
- "default.handlebars->25->1567"
+ "default.handlebars->25->1569"
]
},
{
@@ -2278,8 +2278,8 @@
"ru": "Добавить устройство",
"zh-chs": "添加設備",
"xloc": [
- "default.handlebars->25->1544",
- "default.handlebars->25->1660"
+ "default.handlebars->25->1546",
+ "default.handlebars->25->1663"
]
},
{
@@ -2314,8 +2314,8 @@
"zh-chs": "添加設備組",
"xloc": [
"default.handlebars->25->1290",
- "default.handlebars->25->1538",
- "default.handlebars->25->1648",
+ "default.handlebars->25->1540",
+ "default.handlebars->25->1651",
"default.handlebars->25->198"
]
},
@@ -2432,7 +2432,7 @@
"ru": "Добавить участие",
"zh-chs": "添加會員",
"xloc": [
- "default.handlebars->25->1678"
+ "default.handlebars->25->1681"
]
},
{
@@ -2524,7 +2524,7 @@
"xloc": [
"default.handlebars->25->1190",
"default.handlebars->25->1289",
- "default.handlebars->25->1654",
+ "default.handlebars->25->1657",
"default.handlebars->25->572"
]
},
@@ -2585,7 +2585,7 @@
"zh-chs": "添加用戶",
"xloc": [
"default.handlebars->25->1189",
- "default.handlebars->25->1533"
+ "default.handlebars->25->1535"
]
},
{
@@ -2619,7 +2619,7 @@
"ru": "Добавить пользователей в группу",
"zh-chs": "將用戶添加到用戶組",
"xloc": [
- "default.handlebars->25->1566"
+ "default.handlebars->25->1568"
]
},
{
@@ -2826,7 +2826,7 @@
"ru": "Области администратора",
"zh-chs": "管理領域",
"xloc": [
- "default.handlebars->25->1596"
+ "default.handlebars->25->1599"
]
},
{
@@ -2861,7 +2861,7 @@
"ru": "Административные области",
"zh-chs": "行政領域",
"xloc": [
- "default.handlebars->25->1489"
+ "default.handlebars->25->1491"
]
},
{
@@ -2989,7 +2989,7 @@
"ru": "Счетчик ошибок агента",
"zh-chs": "座席錯誤計數器",
"xloc": [
- "default.handlebars->25->1719"
+ "default.handlebars->25->1722"
]
},
{
@@ -3058,7 +3058,7 @@
"ru": "Сессии агентов",
"zh-chs": "座席會議",
"xloc": [
- "default.handlebars->25->1735"
+ "default.handlebars->25->1738"
]
},
{
@@ -3181,7 +3181,7 @@
"ru": "Агенты",
"zh-chs": "代理商",
"xloc": [
- "default.handlebars->25->1748"
+ "default.handlebars->25->1751"
]
},
{
@@ -3268,7 +3268,7 @@
"zh-chs": "允許用戶管理此設備組和該組中的設備。",
"xloc": [
"default.handlebars->25->1256",
- "default.handlebars->25->1563"
+ "default.handlebars->25->1565"
]
},
{
@@ -3372,7 +3372,7 @@
"zh-chs": "始終通知",
"xloc": [
"default.handlebars->25->1170",
- "default.handlebars->25->1605",
+ "default.handlebars->25->1608",
"default.handlebars->25->518"
]
},
@@ -3391,7 +3391,7 @@
"zh-chs": "總是提示",
"xloc": [
"default.handlebars->25->1171",
- "default.handlebars->25->1606",
+ "default.handlebars->25->1609",
"default.handlebars->25->519"
]
},
@@ -4001,7 +4001,7 @@
"ru": "Вы уверенны, что {0} плагин: {1}",
"zh-chs": "您確定要{0}插件嗎:{1}",
"xloc": [
- "default.handlebars->25->1788"
+ "default.handlebars->25->1791"
]
},
{
@@ -4097,7 +4097,7 @@
"ru": "Приложение аутентификации",
"zh-chs": "身份驗證應用",
"xloc": [
- "default.handlebars->25->1609"
+ "default.handlebars->25->1612"
]
},
{
@@ -4414,7 +4414,7 @@
"ru": "Резервные коды",
"zh-chs": "備用碼",
"xloc": [
- "default.handlebars->25->1611"
+ "default.handlebars->25->1614"
]
},
{
@@ -4431,7 +4431,7 @@
"ru": "Плохой ключ",
"zh-chs": "錯誤的簽名",
"xloc": [
- "default.handlebars->25->1726"
+ "default.handlebars->25->1729"
]
},
{
@@ -4448,7 +4448,7 @@
"ru": "Плохой веб-сертификат",
"zh-chs": "錯誤的網絡證書",
"xloc": [
- "default.handlebars->25->1725"
+ "default.handlebars->25->1728"
]
},
{
@@ -4586,7 +4586,7 @@
"ru": "Отправить сообщение",
"zh-chs": "廣播",
"xloc": [
- "default.handlebars->25->1531",
+ "default.handlebars->25->1533",
"default.handlebars->container->column_l->p4->3->1->0->3->1"
]
},
@@ -4711,7 +4711,7 @@
"ru": "CIRA Сервер",
"zh-chs": "CIRA服務器",
"xloc": [
- "default.handlebars->25->1776"
+ "default.handlebars->25->1779"
]
},
{
@@ -4728,7 +4728,7 @@
"ru": "CIRA Сервер команды",
"zh-chs": "CIRA服務器命令",
"xloc": [
- "default.handlebars->25->1777"
+ "default.handlebars->25->1780"
]
},
{
@@ -4762,7 +4762,7 @@
"ru": "Загрузка CPU",
"zh-chs": "CPU負載",
"xloc": [
- "default.handlebars->25->1740"
+ "default.handlebars->25->1743"
]
},
{
@@ -4779,7 +4779,7 @@
"ru": "Загрузка CPU за последние 15 минут",
"zh-chs": "最近15分鐘的CPU負載",
"xloc": [
- "default.handlebars->25->1743"
+ "default.handlebars->25->1746"
]
},
{
@@ -4796,7 +4796,7 @@
"ru": "Загрузка CPU за последние 5 минут",
"zh-chs": "最近5分鐘的CPU負載",
"xloc": [
- "default.handlebars->25->1742"
+ "default.handlebars->25->1745"
]
},
{
@@ -4813,7 +4813,7 @@
"ru": "Загрузка CPU за последнюю минуту",
"zh-chs": "最後一分鐘的CPU負載",
"xloc": [
- "default.handlebars->25->1741"
+ "default.handlebars->25->1744"
]
},
{
@@ -4868,7 +4868,7 @@
"ru": "Ошибка вызова",
"zh-chs": "通話錯誤",
"xloc": [
- "default.handlebars->25->1789"
+ "default.handlebars->25->1792"
]
},
{
@@ -5008,7 +5008,7 @@
"ru": "Смена email для {0}",
"zh-chs": "更改{0}的電子郵件",
"xloc": [
- "default.handlebars->25->1637"
+ "default.handlebars->25->1640"
]
},
{
@@ -5046,7 +5046,7 @@
"xloc": [
"default-mobile.handlebars->9->90",
"default.handlebars->25->1115",
- "default.handlebars->25->1626"
+ "default.handlebars->25->1629"
]
},
{
@@ -5063,7 +5063,7 @@
"ru": "Смена пароля для {0}",
"zh-chs": "更改{0}的密碼",
"xloc": [
- "default.handlebars->25->1644"
+ "default.handlebars->25->1647"
]
},
{
@@ -5133,7 +5133,7 @@
"ru": "Изменить пароль для этого пользователя",
"zh-chs": "更改該用戶的密碼",
"xloc": [
- "default.handlebars->25->1625"
+ "default.handlebars->25->1628"
]
},
{
@@ -5338,7 +5338,7 @@
"ru": "Проверка...",
"zh-chs": "檢查...",
"xloc": [
- "default.handlebars->25->1783",
+ "default.handlebars->25->1786",
"default.handlebars->25->888"
]
},
@@ -5554,7 +5554,7 @@
"nl": "Wis alle meldingen",
"zh-chs": "全部清除",
"xloc": [
- "default.handlebars->25->1713"
+ "default.handlebars->25->1716"
]
},
{
@@ -5604,7 +5604,7 @@
"ru": "Очистить это уведомление",
"zh-chs": "清除此通知",
"xloc": [
- "default.handlebars->25->1712"
+ "default.handlebars->25->1715"
]
},
{
@@ -5680,7 +5680,7 @@
"nl": "Klik hier om de gebruikersgroepsnaam te bewerken",
"zh-chs": "单击此处编辑用户组名称",
"xloc": [
- "default.handlebars->25->1523"
+ "default.handlebars->25->1525"
]
},
{
@@ -5855,8 +5855,8 @@
"ru": "Общие группы устройств",
"zh-chs": "通用設備組",
"xloc": [
- "default.handlebars->25->1539",
- "default.handlebars->25->1649"
+ "default.handlebars->25->1541",
+ "default.handlebars->25->1652"
]
},
{
@@ -5873,8 +5873,8 @@
"ru": "Общие устройства",
"zh-chs": "通用設備",
"xloc": [
- "default.handlebars->25->1545",
- "default.handlebars->25->1661"
+ "default.handlebars->25->1547",
+ "default.handlebars->25->1664"
]
},
{
@@ -5913,9 +5913,9 @@
"default-mobile.handlebars->9->387",
"default.handlebars->25->1235",
"default.handlebars->25->1448",
- "default.handlebars->25->1515",
- "default.handlebars->25->1559",
- "default.handlebars->25->1647",
+ "default.handlebars->25->1517",
+ "default.handlebars->25->1561",
+ "default.handlebars->25->1650",
"default.handlebars->25->408",
"default.handlebars->25->647",
"default.handlebars->25->656"
@@ -5999,7 +5999,7 @@
"nl": "Bevestig verwijdering geselecteerde gebruikersgroep(en)?",
"zh-chs": "确认删除选定的用户组?",
"xloc": [
- "default.handlebars->25->1514"
+ "default.handlebars->25->1516"
]
},
{
@@ -6016,7 +6016,7 @@
"ru": "Подтвердить удаление пользователя {0}?",
"zh-chs": "確認刪除用戶{0}?",
"xloc": [
- "default.handlebars->25->1646"
+ "default.handlebars->25->1649"
]
},
{
@@ -6030,7 +6030,7 @@
"nl": "Bevestig lidmaatschap verwijderen van gebruiker \\\"{0}\\\"?",
"zh-chs": "确认删除用户\\“ {0} \\”的成员身份?",
"xloc": [
- "default.handlebars->25->1562"
+ "default.handlebars->25->1564"
]
},
{
@@ -6044,7 +6044,7 @@
"nl": "Bevestig lidmaatschap verwijdering van gebruikergroep \\\"{0}\\\"?",
"zh-chs": "确认删除用户组 “{0}” 的成员身份?",
"xloc": [
- "default.handlebars->25->1676"
+ "default.handlebars->25->1679"
]
},
{
@@ -6111,8 +6111,8 @@
"nl": "Bevestig verwijdering van toegangsrechten voor apparaat \\\"{0}\\\"?",
"zh-chs": "确认删除设备“ {0} ”的访问权限?",
"xloc": [
- "default.handlebars->25->1552",
- "default.handlebars->25->1667"
+ "default.handlebars->25->1554",
+ "default.handlebars->25->1670"
]
},
{
@@ -6126,8 +6126,8 @@
"nl": "Bevestig verwijdering van toegangsrechten voor apparaatgroep \\\"{0}\\\"?",
"zh-chs": "是否确认删除设备组“ {0}”的访问权限?",
"xloc": [
- "default.handlebars->25->1554",
- "default.handlebars->25->1680"
+ "default.handlebars->25->1556",
+ "default.handlebars->25->1683"
]
},
{
@@ -6141,7 +6141,7 @@
"nl": "Bevestig verwijdering van toegangsrechten voor gebruiker \\\"{0}\\\"?",
"zh-chs": "确认删除用户\\“ {0} \\”的访问权限?",
"xloc": [
- "default.handlebars->25->1669"
+ "default.handlebars->25->1672"
]
},
{
@@ -6155,7 +6155,7 @@
"nl": "Bevestig verwijdering van toegangsrechten voor gebruikergroep \\\"{0}\\\"?",
"zh-chs": "确认删除用户组“ {0}”的访问权限?",
"xloc": [
- "default.handlebars->25->1672"
+ "default.handlebars->25->1675"
]
},
{
@@ -6169,8 +6169,8 @@
"nl": "Verwijdering van toegangsrechten bevestigen?",
"zh-chs": "确认删除访问权限?",
"xloc": [
- "default.handlebars->25->1670",
- "default.handlebars->25->1673"
+ "default.handlebars->25->1673",
+ "default.handlebars->25->1676"
]
},
{
@@ -6417,7 +6417,7 @@
"ru": "Подключено Intel® AMT",
"zh-chs": "連接的英特爾®AMT",
"xloc": [
- "default.handlebars->25->1731"
+ "default.handlebars->25->1734"
]
},
{
@@ -6434,7 +6434,7 @@
"ru": "Подключенные пользователи",
"zh-chs": "關聯用戶",
"xloc": [
- "default.handlebars->25->1736"
+ "default.handlebars->25->1739"
]
},
{
@@ -6511,7 +6511,7 @@
"ru": "Подключений ",
"zh-chs": "連接數",
"xloc": [
- "default.handlebars->25->1747"
+ "default.handlebars->25->1750"
]
},
{
@@ -6528,7 +6528,7 @@
"ru": "Ретранслятор подключения",
"zh-chs": "連接繼電器",
"xloc": [
- "default.handlebars->25->1775"
+ "default.handlebars->25->1778"
]
},
{
@@ -6655,7 +6655,7 @@
"ru": "Cookie-кодировщик",
"zh-chs": "Cookie編碼器",
"xloc": [
- "default.handlebars->25->1761"
+ "default.handlebars->25->1764"
]
},
{
@@ -6960,7 +6960,7 @@
"ru": "Основной сервер",
"zh-chs": "核心服務器",
"xloc": [
- "default.handlebars->25->1760"
+ "default.handlebars->25->1763"
]
},
{
@@ -6994,7 +6994,7 @@
"ru": "Создать учетную запись",
"zh-chs": "創建帳號",
"xloc": [
- "default.handlebars->25->1485",
+ "default.handlebars->25->1487",
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1",
"login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1"
]
@@ -7030,7 +7030,7 @@
"ru": "Создать группу пользователей",
"zh-chs": "創建用戶組",
"xloc": [
- "default.handlebars->25->1520"
+ "default.handlebars->25->1522"
]
},
{
@@ -7116,7 +7116,7 @@
"ru": "Создано",
"zh-chs": "創建",
"xloc": [
- "default.handlebars->25->1585"
+ "default.handlebars->25->1588"
]
},
{
@@ -7433,6 +7433,12 @@
"default.handlebars->25->368"
]
},
+ {
+ "en": "Default",
+ "xloc": [
+ "default.handlebars->25->1474"
+ ]
+ },
{
"cs": "Smazat",
"de": "Löschen",
@@ -7581,7 +7587,7 @@
"ru": "Удалить пользователя",
"zh-chs": "刪除用戶",
"xloc": [
- "default.handlebars->25->1624"
+ "default.handlebars->25->1627"
]
},
{
@@ -7598,8 +7604,8 @@
"ru": "Удалить группу пользователей",
"zh-chs": "刪除用戶組",
"xloc": [
- "default.handlebars->25->1550",
- "default.handlebars->25->1560"
+ "default.handlebars->25->1552",
+ "default.handlebars->25->1562"
]
},
{
@@ -7613,7 +7619,7 @@
"nl": "Gebruikersgroepen verwijderen",
"zh-chs": "删除用户组",
"xloc": [
- "default.handlebars->25->1516"
+ "default.handlebars->25->1518"
]
},
{
@@ -7630,7 +7636,7 @@
"ru": "Удалить пользователя {0}",
"zh-chs": "刪除用戶{0}",
"xloc": [
- "default.handlebars->25->1645"
+ "default.handlebars->25->1648"
]
},
{
@@ -7680,7 +7686,7 @@
"nl": "Verwijder groep",
"zh-chs": "删除群组",
"xloc": [
- "default.handlebars->25->1512"
+ "default.handlebars->25->1514"
]
},
{
@@ -7734,7 +7740,7 @@
"ru": "Удалить группу пользователей {0}?",
"zh-chs": "刪除用戶組{0}?",
"xloc": [
- "default.handlebars->25->1558"
+ "default.handlebars->25->1560"
]
},
{
@@ -7871,10 +7877,10 @@
"default.handlebars->25->1127",
"default.handlebars->25->1155",
"default.handlebars->25->1238",
- "default.handlebars->25->1519",
- "default.handlebars->25->1526",
- "default.handlebars->25->1527",
- "default.handlebars->25->1556",
+ "default.handlebars->25->1521",
+ "default.handlebars->25->1528",
+ "default.handlebars->25->1529",
+ "default.handlebars->25->1558",
"default.handlebars->25->477",
"default.handlebars->25->478",
"default.handlebars->25->688",
@@ -7913,7 +7919,7 @@
"xloc": [
"default-mobile.handlebars->9->245",
"default.handlebars->25->1243",
- "default.handlebars->25->1690",
+ "default.handlebars->25->1693",
"default.handlebars->25->444",
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
"default.handlebars->contextMenu->cxdesktop"
@@ -7951,7 +7957,7 @@
"zh-chs": "桌面通知",
"xloc": [
"default.handlebars->25->1165",
- "default.handlebars->25->1600",
+ "default.handlebars->25->1603",
"default.handlebars->25->513"
]
},
@@ -7970,7 +7976,7 @@
"zh-chs": "桌面提示",
"xloc": [
"default.handlebars->25->1164",
- "default.handlebars->25->1599",
+ "default.handlebars->25->1602",
"default.handlebars->25->512"
]
},
@@ -7989,7 +7995,7 @@
"zh-chs": "桌面提示+工具欄",
"xloc": [
"default.handlebars->25->1162",
- "default.handlebars->25->1597",
+ "default.handlebars->25->1600",
"default.handlebars->25->510"
]
},
@@ -8022,7 +8028,7 @@
"zh-chs": "桌面工具欄",
"xloc": [
"default.handlebars->25->1163",
- "default.handlebars->25->1598",
+ "default.handlebars->25->1601",
"default.handlebars->25->511"
]
},
@@ -8095,7 +8101,7 @@
"zh-chs": "設備",
"xloc": [
"default.handlebars->25->1265",
- "default.handlebars->25->1664",
+ "default.handlebars->25->1667",
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5"
]
},
@@ -8134,10 +8140,10 @@
"default.handlebars->25->1260",
"default.handlebars->25->1263",
"default.handlebars->25->1264",
- "default.handlebars->25->1542",
- "default.handlebars->25->1548",
- "default.handlebars->25->1652",
- "default.handlebars->25->1699"
+ "default.handlebars->25->1544",
+ "default.handlebars->25->1550",
+ "default.handlebars->25->1655",
+ "default.handlebars->25->1702"
]
},
{
@@ -8174,10 +8180,10 @@
"xloc": [
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3",
"default.handlebars->25->1414",
- "default.handlebars->25->1506",
- "default.handlebars->25->1529",
- "default.handlebars->25->1594",
- "default.handlebars->25->1734",
+ "default.handlebars->25->1508",
+ "default.handlebars->25->1531",
+ "default.handlebars->25->1597",
+ "default.handlebars->25->1737",
"default.handlebars->container->column_l->p2->p2info->7"
]
},
@@ -8237,7 +8243,7 @@
"zh-chs": "設備名稱",
"xloc": [
"default-mobile.handlebars->9->267",
- "default.handlebars->25->1698",
+ "default.handlebars->25->1701",
"default.handlebars->25->244",
"default.handlebars->25->686",
"player.handlebars->3->9"
@@ -8617,8 +8623,8 @@
"nl": "Apparaten",
"zh-chs": "设备",
"xloc": [
- "default.handlebars->25->1507",
- "default.handlebars->25->1530"
+ "default.handlebars->25->1509",
+ "default.handlebars->25->1532"
]
},
{
@@ -8804,6 +8810,12 @@
"default.handlebars->25->1219"
]
},
+ {
+ "en": "Domain",
+ "xloc": [
+ "default.handlebars->25->1475"
+ ]
+ },
{
"en": "Don't configure",
"es": "No configurar",
@@ -9249,7 +9261,7 @@
"nl": "Dubbele agent",
"zh-chs": "代理重复",
"xloc": [
- "default.handlebars->25->1730"
+ "default.handlebars->25->1733"
]
},
{
@@ -9283,7 +9295,7 @@
"ru": "Скопировать группу пользователей",
"zh-chs": "重複的用戶組",
"xloc": [
- "default.handlebars->25->1521"
+ "default.handlebars->25->1523"
]
},
{
@@ -9314,8 +9326,8 @@
"ru": "Длительность",
"zh-chs": "持續時間",
"xloc": [
- "default.handlebars->25->1684",
- "default.handlebars->25->1704",
+ "default.handlebars->25->1687",
+ "default.handlebars->25->1707",
"player.handlebars->3->2"
]
},
@@ -9800,7 +9812,7 @@
"ru": "Редактировать группу пользователей",
"zh-chs": "編輯用戶組",
"xloc": [
- "default.handlebars->25->1557"
+ "default.handlebars->25->1559"
]
},
{
@@ -9849,11 +9861,11 @@
"zh-chs": "電子郵件",
"xloc": [
"default-mobile.handlebars->9->78",
- "default.handlebars->25->1475",
- "default.handlebars->25->1579",
- "default.handlebars->25->1580",
- "default.handlebars->25->1619",
- "default.handlebars->25->1633",
+ "default.handlebars->25->1477",
+ "default.handlebars->25->1582",
+ "default.handlebars->25->1583",
+ "default.handlebars->25->1622",
+ "default.handlebars->25->1636",
"default.handlebars->25->292",
"login-mobile.handlebars->5->42",
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
@@ -9987,7 +9999,7 @@
"zh-chs": "電子郵件已驗證",
"xloc": [
"default.handlebars->25->1434",
- "default.handlebars->25->1576"
+ "default.handlebars->25->1578"
]
},
{
@@ -10004,7 +10016,7 @@
"ru": "Email подтвержден.",
"zh-chs": "電子郵件已驗證。",
"xloc": [
- "default.handlebars->25->1481"
+ "default.handlebars->25->1483"
]
},
{
@@ -10021,7 +10033,7 @@
"ru": "Email не подтвержден",
"zh-chs": "電子郵件未驗證",
"xloc": [
- "default.handlebars->25->1577"
+ "default.handlebars->25->1579"
]
},
{
@@ -10060,7 +10072,7 @@
"en": "Email verified and forced password reset required.",
"nl": "E-mail geverifieerd en geforceerd opnieuw instellen van wachtwoord vereist.",
"xloc": [
- "default.handlebars->25->1482"
+ "default.handlebars->25->1484"
]
},
{
@@ -10073,7 +10085,7 @@
"nl": "Email/SMS verkeer",
"zh-chs": "电子邮件/短信流量",
"xloc": [
- "default.handlebars->25->1769"
+ "default.handlebars->25->1772"
]
},
{
@@ -10171,7 +10183,7 @@
"en": "Enabled",
"nl": "Ingeschakeld",
"xloc": [
- "default.handlebars->25->1706"
+ "default.handlebars->25->1709"
]
},
{
@@ -10195,7 +10207,7 @@
"en": "End Time",
"nl": "Eindtijd",
"xloc": [
- "default.handlebars->25->1703"
+ "default.handlebars->25->1706"
]
},
{
@@ -10451,7 +10463,7 @@
"ru": "Введите разделенный запятыми список имен административных областей.",
"zh-chs": "輸入管理領域名稱的逗號分隔列表。",
"xloc": [
- "default.handlebars->25->1486"
+ "default.handlebars->25->1488"
]
},
{
@@ -10758,7 +10770,7 @@
"ru": "Внешний",
"zh-chs": "外部",
"xloc": [
- "default.handlebars->25->1754"
+ "default.handlebars->25->1757"
]
},
{
@@ -10964,7 +10976,7 @@
"default-mobile.handlebars->9->165",
"default-mobile.handlebars->9->246",
"default.handlebars->25->1250",
- "default.handlebars->25->1691",
+ "default.handlebars->25->1694",
"default.handlebars->25->218",
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles",
"default.handlebars->contextMenu->cxfiles"
@@ -11002,7 +11014,7 @@
"zh-chs": "文件通知",
"xloc": [
"default.handlebars->25->1169",
- "default.handlebars->25->1604",
+ "default.handlebars->25->1607",
"default.handlebars->25->517"
]
},
@@ -11021,7 +11033,7 @@
"zh-chs": "文件提示",
"xloc": [
"default.handlebars->25->1168",
- "default.handlebars->25->1603",
+ "default.handlebars->25->1606",
"default.handlebars->25->516"
]
},
@@ -11182,8 +11194,8 @@
"ru": "Принудительно сбросить пароль при следующем входе в систему.",
"zh-chs": "下次登錄時強制重置密碼。",
"xloc": [
- "default.handlebars->25->1480",
- "default.handlebars->25->1642"
+ "default.handlebars->25->1482",
+ "default.handlebars->25->1645"
]
},
{
@@ -11269,8 +11281,8 @@
"ru": "Свободно",
"zh-chs": "自由",
"xloc": [
- "default.handlebars->25->1715",
- "default.handlebars->25->1717"
+ "default.handlebars->25->1718",
+ "default.handlebars->25->1720"
]
},
{
@@ -11464,7 +11476,7 @@
"default-mobile.handlebars->9->410",
"default.handlebars->25->1136",
"default.handlebars->25->1268",
- "default.handlebars->25->1492"
+ "default.handlebars->25->1494"
]
},
{
@@ -11564,7 +11576,7 @@
"ru": "Администратор с полным доступом",
"zh-chs": "正式管理員",
"xloc": [
- "default.handlebars->25->1571"
+ "default.handlebars->25->1573"
]
},
{
@@ -11996,7 +12008,7 @@
"zh-chs": "集體行動",
"xloc": [
"default.handlebars->25->1446",
- "default.handlebars->25->1513",
+ "default.handlebars->25->1515",
"default.handlebars->25->406",
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar",
"default.handlebars->container->column_l->p4->3->1->0->3->3",
@@ -12017,7 +12029,7 @@
"ru": "Члены группы",
"zh-chs": "小組成員",
"xloc": [
- "default.handlebars->25->1534"
+ "default.handlebars->25->1536"
]
},
{
@@ -12189,7 +12201,7 @@
"ru": "Всего кучи",
"zh-chs": "堆總數",
"xloc": [
- "default.handlebars->25->1756"
+ "default.handlebars->25->1759"
]
},
{
@@ -12206,7 +12218,7 @@
"ru": "Куча используется",
"zh-chs": "堆使用",
"xloc": [
- "default.handlebars->25->1755"
+ "default.handlebars->25->1758"
]
},
{
@@ -12997,8 +13009,8 @@
"xloc": [
"default.handlebars->25->1352",
"default.handlebars->25->1360",
- "default.handlebars->25->1752",
- "default.handlebars->25->1774"
+ "default.handlebars->25->1755",
+ "default.handlebars->25->1777"
]
},
{
@@ -13039,14 +13051,14 @@
"en": "Intel AMT Redirection",
"nl": "Intel AMT omleiding",
"xloc": [
- "default.handlebars->25->1693"
+ "default.handlebars->25->1696"
]
},
{
"en": "Intel AMT WSMAN",
"nl": "Intel AMT WSMAN",
"xloc": [
- "default.handlebars->25->1692"
+ "default.handlebars->25->1695"
]
},
{
@@ -13731,7 +13743,7 @@
"ru": "Некорректный тип группы устройств",
"zh-chs": "無效的設備組類型",
"xloc": [
- "default.handlebars->25->1729"
+ "default.handlebars->25->1732"
]
},
{
@@ -13748,7 +13760,7 @@
"ru": "Некорректный JSON",
"zh-chs": "無效的JSON",
"xloc": [
- "default.handlebars->25->1723"
+ "default.handlebars->25->1726"
]
},
{
@@ -13800,7 +13812,7 @@
"ru": "Некорректная сигнатура PKCS",
"zh-chs": "無效的PKCS簽名",
"xloc": [
- "default.handlebars->25->1721"
+ "default.handlebars->25->1724"
]
},
{
@@ -13817,7 +13829,7 @@
"ru": "Некорректная сигнатура RSA",
"zh-chs": "無效的RSA密碼",
"xloc": [
- "default.handlebars->25->1722"
+ "default.handlebars->25->1725"
]
},
{
@@ -14644,7 +14656,7 @@
"ru": "Последний вход в систему",
"zh-chs": "上次登錄",
"xloc": [
- "default.handlebars->25->1586"
+ "default.handlebars->25->1589"
]
},
{
@@ -14707,7 +14719,7 @@
"ru": "Последнее изменение: {0}",
"zh-chs": "上次更改:{0}",
"xloc": [
- "default.handlebars->25->1590"
+ "default.handlebars->25->1593"
]
},
{
@@ -14874,7 +14886,7 @@
"nl": "Leeg laten voor geen.",
"zh-chs": "一无所有。",
"xloc": [
- "default.handlebars->25->1630"
+ "default.handlebars->25->1633"
]
},
{
@@ -14913,7 +14925,7 @@
"ru": "Меньше",
"zh-chs": "減",
"xloc": [
- "default.handlebars->25->1791"
+ "default.handlebars->25->1794"
]
},
{
@@ -15458,7 +15470,7 @@
"ru": "Заблокировать учетную запись",
"zh-chs": "鎖定賬戶",
"xloc": [
- "default.handlebars->25->1499"
+ "default.handlebars->25->1501"
]
},
{
@@ -15509,7 +15521,7 @@
"ru": "Заблокированная учетная запись",
"zh-chs": "賬戶鎖定",
"xloc": [
- "default.handlebars->25->1568"
+ "default.handlebars->25->1570"
]
},
{
@@ -16022,7 +16034,7 @@
"ru": "Сообщения главного сервера",
"zh-chs": "主服務器消息",
"xloc": [
- "default.handlebars->25->1763"
+ "default.handlebars->25->1766"
]
},
{
@@ -16154,7 +16166,7 @@
"en": "Manage Recordings",
"nl": "Beheeer opnames",
"xloc": [
- "default.handlebars->25->1498"
+ "default.handlebars->25->1500"
]
},
{
@@ -16188,7 +16200,7 @@
"ru": "Управление группами пользователя",
"zh-chs": "管理用戶組",
"xloc": [
- "default.handlebars->25->1497"
+ "default.handlebars->25->1499"
]
},
{
@@ -16205,7 +16217,7 @@
"ru": "Управление пользователями",
"zh-chs": "管理用戶",
"xloc": [
- "default.handlebars->25->1496",
+ "default.handlebars->25->1498",
"default.handlebars->25->597"
]
},
@@ -16448,7 +16460,7 @@
"ru": "Достигнуто максимальное число сессий",
"zh-chs": "達到的會話數上限",
"xloc": [
- "default.handlebars->25->1727"
+ "default.handlebars->25->1730"
]
},
{
@@ -16502,7 +16514,7 @@
"ru": "Мегабайт",
"zh-chs": "兆字節",
"xloc": [
- "default.handlebars->25->1753"
+ "default.handlebars->25->1756"
]
},
{
@@ -16520,7 +16532,7 @@
"zh-chs": "記憶",
"xloc": [
"default-mobile.handlebars->9->366",
- "default.handlebars->25->1744",
+ "default.handlebars->25->1747",
"default.handlebars->25->842",
"default.handlebars->container->column_l->p40->3->1->p40type->3"
]
@@ -16658,7 +16670,7 @@
"ru": "Трафик MeshAgent",
"zh-chs": "MeshAgent流量",
"xloc": [
- "default.handlebars->25->1765"
+ "default.handlebars->25->1768"
]
},
{
@@ -16675,7 +16687,7 @@
"ru": "Обновление MeshAgent",
"zh-chs": "MeshAgent更新",
"xloc": [
- "default.handlebars->25->1766"
+ "default.handlebars->25->1769"
]
},
{
@@ -16778,7 +16790,7 @@
"ru": "Соединения сервера MeshCentral",
"zh-chs": "MeshCentral服務器對等",
"xloc": [
- "default.handlebars->25->1764"
+ "default.handlebars->25->1767"
]
},
{
@@ -17042,7 +17054,7 @@
"ru": "Диспетчер сообщения",
"zh-chs": "郵件調度程序",
"xloc": [
- "default.handlebars->25->1762"
+ "default.handlebars->25->1765"
]
},
{
@@ -17191,7 +17203,7 @@
"ru": "Еще",
"zh-chs": "更多",
"xloc": [
- "default.handlebars->25->1790"
+ "default.handlebars->25->1793"
]
},
{
@@ -17267,7 +17279,7 @@
"en": "Multiplexor",
"nl": "Multiplexor",
"xloc": [
- "default.handlebars->25->1705"
+ "default.handlebars->25->1708"
]
},
{
@@ -17539,11 +17551,11 @@
"default.handlebars->25->1154",
"default.handlebars->25->1237",
"default.handlebars->25->1413",
- "default.handlebars->25->1504",
- "default.handlebars->25->1518",
- "default.handlebars->25->1525",
- "default.handlebars->25->1555",
- "default.handlebars->25->1574",
+ "default.handlebars->25->1506",
+ "default.handlebars->25->1520",
+ "default.handlebars->25->1527",
+ "default.handlebars->25->1557",
+ "default.handlebars->25->1576",
"default.handlebars->25->467",
"default.handlebars->25->717",
"default.handlebars->25->77",
@@ -17585,7 +17597,7 @@
"ru": "Имя1, Имя2, Имя3",
"zh-chs": "名稱1,名稱2,名稱3",
"xloc": [
- "default.handlebars->25->1488"
+ "default.handlebars->25->1490"
]
},
{
@@ -17939,7 +17951,7 @@
"zh-chs": "找不到活動",
"xloc": [
"default.handlebars->25->1403",
- "default.handlebars->25->1681",
+ "default.handlebars->25->1684",
"default.handlebars->25->788"
]
},
@@ -18083,7 +18095,7 @@
"ru": "Нет членов",
"zh-chs": "沒有會員",
"xloc": [
- "default.handlebars->25->1537"
+ "default.handlebars->25->1539"
]
},
{
@@ -18100,7 +18112,7 @@
"ru": "Запретить создание групп устройств",
"zh-chs": "沒有新的設備組",
"xloc": [
- "default.handlebars->25->1500"
+ "default.handlebars->25->1502"
]
},
{
@@ -18216,7 +18228,7 @@
"ru": "Нет инструментов (MeshCmd/Router)",
"zh-chs": "沒有工具(MeshCmd /路由器)",
"xloc": [
- "default.handlebars->25->1501"
+ "default.handlebars->25->1503"
]
},
{
@@ -18233,8 +18245,8 @@
"ru": "Нет общих групп устройств",
"zh-chs": "沒有共同的設備組",
"xloc": [
- "default.handlebars->25->1543",
- "default.handlebars->25->1653"
+ "default.handlebars->25->1545",
+ "default.handlebars->25->1656"
]
},
{
@@ -18330,8 +18342,8 @@
"ru": "Нет общих устройств",
"zh-chs": "沒有共同的設備",
"xloc": [
- "default.handlebars->25->1549",
- "default.handlebars->25->1665"
+ "default.handlebars->25->1551",
+ "default.handlebars->25->1668"
]
},
{
@@ -18418,7 +18430,7 @@
"ru": "Группы не найдены.",
"zh-chs": "找不到群組。",
"xloc": [
- "default.handlebars->25->1503"
+ "default.handlebars->25->1505"
]
},
{
@@ -18521,7 +18533,7 @@
"ru": "Нет серверных прав",
"zh-chs": "沒有服務器權限",
"xloc": [
- "default.handlebars->25->1569"
+ "default.handlebars->25->1571"
]
},
{
@@ -18538,7 +18550,7 @@
"ru": "Нет членства в группах пользователей",
"zh-chs": "沒有用戶組成員身份",
"xloc": [
- "default.handlebars->25->1659"
+ "default.handlebars->25->1662"
]
},
{
@@ -18640,13 +18652,13 @@
"default.handlebars->25->1179",
"default.handlebars->25->1354",
"default.handlebars->25->1373",
- "default.handlebars->25->1522",
"default.handlebars->25->1524",
+ "default.handlebars->25->1526",
"default.handlebars->25->158",
- "default.handlebars->25->1582",
- "default.handlebars->25->1591",
- "default.handlebars->25->1595",
- "default.handlebars->25->1607",
+ "default.handlebars->25->1585",
+ "default.handlebars->25->1594",
+ "default.handlebars->25->1598",
+ "default.handlebars->25->1610",
"default.handlebars->25->174",
"default.handlebars->25->175",
"default.handlebars->25->464",
@@ -18806,7 +18818,7 @@
"en": "Not on server",
"nl": "Niet op de server",
"xloc": [
- "default.handlebars->25->1697"
+ "default.handlebars->25->1700"
]
},
{
@@ -18823,7 +18835,7 @@
"ru": "Не задано",
"zh-chs": "沒有設置",
"xloc": [
- "default.handlebars->25->1575"
+ "default.handlebars->25->1577"
]
},
{
@@ -18840,7 +18852,7 @@
"ru": "не подтверждено",
"zh-chs": "未經審核的",
"xloc": [
- "default.handlebars->25->1635"
+ "default.handlebars->25->1638"
]
},
{
@@ -18858,7 +18870,7 @@
"zh-chs": "筆記",
"xloc": [
"default.handlebars->25->1187",
- "default.handlebars->25->1615",
+ "default.handlebars->25->1618",
"default.handlebars->25->536",
"default.handlebars->25->590",
"default.handlebars->25->609",
@@ -18966,7 +18978,7 @@
"ru": "Уведомить",
"zh-chs": "通知",
"xloc": [
- "default.handlebars->25->1621"
+ "default.handlebars->25->1624"
]
},
{
@@ -19080,7 +19092,7 @@
"ru": "Произошло в {0}",
"zh-chs": "發生在{0}",
"xloc": [
- "default.handlebars->25->1711"
+ "default.handlebars->25->1714"
]
},
{
@@ -19325,7 +19337,7 @@
"xloc": [
"default-mobile.handlebars->9->253",
"default.handlebars->25->1442",
- "default.handlebars->25->1511",
+ "default.handlebars->25->1513",
"default.handlebars->25->398",
"default.handlebars->25->629"
]
@@ -19564,7 +19576,7 @@
"ru": "Частичные права",
"zh-chs": "部分權利",
"xloc": [
- "default.handlebars->25->1572"
+ "default.handlebars->25->1574"
]
},
{
@@ -19599,12 +19611,12 @@
"zh-chs": "密碼",
"xloc": [
"default-mobile.handlebars->9->258",
- "default.handlebars->25->1476",
- "default.handlebars->25->1477",
- "default.handlebars->25->1587",
- "default.handlebars->25->1589",
- "default.handlebars->25->1638",
- "default.handlebars->25->1639",
+ "default.handlebars->25->1478",
+ "default.handlebars->25->1479",
+ "default.handlebars->25->1590",
+ "default.handlebars->25->1592",
+ "default.handlebars->25->1641",
+ "default.handlebars->25->1642",
"default.handlebars->25->249",
"default.handlebars->25->278",
"default.handlebars->25->635"
@@ -19713,7 +19725,7 @@
"ru": "Подсказка пароля",
"zh-chs": "密碼提示",
"xloc": [
- "default.handlebars->25->1640"
+ "default.handlebars->25->1643"
]
},
{
@@ -20035,7 +20047,7 @@
"default-mobile.handlebars->9->65",
"default-mobile.handlebars->9->67",
"default.handlebars->25->143",
- "default.handlebars->25->1632",
+ "default.handlebars->25->1635",
"default.handlebars->25->868",
"default.handlebars->25->871"
]
@@ -20050,7 +20062,7 @@
"nl": "Telefoonnummer",
"zh-chs": "电话号码",
"xloc": [
- "default.handlebars->25->1581"
+ "default.handlebars->25->1584"
]
},
{
@@ -20064,7 +20076,7 @@
"zh-chs": "电话号码:",
"xloc": [
"default-mobile.handlebars->9->66",
- "default.handlebars->25->1631",
+ "default.handlebars->25->1634",
"default.handlebars->25->870"
]
},
@@ -20201,7 +20213,7 @@
"zh-chs": "插件動作",
"xloc": [
"default.handlebars->25->169",
- "default.handlebars->25->1787"
+ "default.handlebars->25->1790"
]
},
{
@@ -20519,7 +20531,7 @@
"en": "Present on server",
"nl": "Aanwezig op de server",
"xloc": [
- "default.handlebars->25->1696"
+ "default.handlebars->25->1699"
]
},
{
@@ -20633,7 +20645,7 @@
"ru": "Протокол",
"zh-chs": "協議",
"xloc": [
- "default.handlebars->25->1694",
+ "default.handlebars->25->1697",
"player.handlebars->3->15"
]
},
@@ -20941,7 +20953,7 @@
"ru": "RSS",
"zh-chs": "的RSS",
"xloc": [
- "default.handlebars->25->1757"
+ "default.handlebars->25->1760"
]
},
{
@@ -20958,7 +20970,7 @@
"ru": "Случайный пароль.",
"zh-chs": "隨機化密碼。",
"xloc": [
- "default.handlebars->25->1478"
+ "default.handlebars->25->1480"
]
},
{
@@ -21009,7 +21021,7 @@
"ru": "Области",
"zh-chs": "境界",
"xloc": [
- "default.handlebars->25->1487"
+ "default.handlebars->25->1489"
]
},
{
@@ -21036,7 +21048,7 @@
"en": "Recording Details",
"nl": "Opname details",
"xloc": [
- "default.handlebars->25->1708"
+ "default.handlebars->25->1711"
]
},
{
@@ -21160,7 +21172,7 @@
"ru": "Число ретрансляций",
"zh-chs": "中繼計數",
"xloc": [
- "default.handlebars->25->1739"
+ "default.handlebars->25->1742"
]
},
{
@@ -21177,7 +21189,7 @@
"ru": "Ошибки ретранслятора",
"zh-chs": "中繼錯誤",
"xloc": [
- "default.handlebars->25->1732"
+ "default.handlebars->25->1735"
]
},
{
@@ -21194,8 +21206,8 @@
"ru": "Сессии ретранслятора",
"zh-chs": "接力會議",
"xloc": [
- "default.handlebars->25->1738",
- "default.handlebars->25->1751"
+ "default.handlebars->25->1741",
+ "default.handlebars->25->1754"
]
},
{
@@ -21515,8 +21527,8 @@
"nl": "Apparaatgroepmachtigingen verwijderen",
"zh-chs": "删除设备组权限",
"xloc": [
- "default.handlebars->25->1553",
- "default.handlebars->25->1679"
+ "default.handlebars->25->1555",
+ "default.handlebars->25->1682"
]
},
{
@@ -21530,8 +21542,8 @@
"nl": "Apparaatmachtigingen verwijderen",
"zh-chs": "删除设备权限",
"xloc": [
- "default.handlebars->25->1551",
- "default.handlebars->25->1666"
+ "default.handlebars->25->1553",
+ "default.handlebars->25->1669"
]
},
{
@@ -21559,7 +21571,7 @@
"nl": "Lidmaatschap van gebruikersgroep verwijderen",
"zh-chs": "删除用户组成员身份",
"xloc": [
- "default.handlebars->25->1675"
+ "default.handlebars->25->1678"
]
},
{
@@ -21574,7 +21586,7 @@
"zh-chs": "删除用户组权限",
"xloc": [
"default.handlebars->25->1328",
- "default.handlebars->25->1671"
+ "default.handlebars->25->1674"
]
},
{
@@ -21588,7 +21600,7 @@
"nl": "Gebruikerslidmaatschap verwijderen",
"zh-chs": "删除用户成员资格",
"xloc": [
- "default.handlebars->25->1561"
+ "default.handlebars->25->1563"
]
},
{
@@ -21603,7 +21615,7 @@
"zh-chs": "删除用户权限",
"xloc": [
"default.handlebars->25->1326",
- "default.handlebars->25->1668"
+ "default.handlebars->25->1671"
]
},
{
@@ -21620,7 +21632,7 @@
"ru": "Удалить все двухфакторные аутентификации.",
"zh-chs": "刪除所有第二因素驗證。",
"xloc": [
- "default.handlebars->25->1643"
+ "default.handlebars->25->1646"
]
},
{
@@ -21637,7 +21649,7 @@
"ru": "Удалить все прошлые события для этого userid.",
"zh-chs": "刪除此用戶標識的所有先前事件。",
"xloc": [
- "default.handlebars->25->1479"
+ "default.handlebars->25->1481"
]
},
{
@@ -21718,7 +21730,7 @@
"ru": "Удалить этого пользователя",
"zh-chs": "删除该用户",
"xloc": [
- "default.handlebars->25->1623"
+ "default.handlebars->25->1626"
]
},
{
@@ -21735,7 +21747,7 @@
"ru": "Удалить членство пользователя в группе",
"zh-chs": "刪除用戶組成員身份",
"xloc": [
- "default.handlebars->25->1657"
+ "default.handlebars->25->1660"
]
},
{
@@ -21749,7 +21761,7 @@
"nl": "Gebruikersrechten voor dit apparaat verwijderen",
"zh-chs": "删除此设备的用户组权限",
"xloc": [
- "default.handlebars->25->1547"
+ "default.handlebars->25->1549"
]
},
{
@@ -21766,7 +21778,7 @@
"ru": "Удалить права группы пользователей для этой группы устройств",
"zh-chs": "刪除該設備組的用戶組權限",
"xloc": [
- "default.handlebars->25->1541",
+ "default.handlebars->25->1543",
"default.handlebars->25->574"
]
},
@@ -21785,9 +21797,9 @@
"zh-chs": "刪除此設備組的用戶權限",
"xloc": [
"default.handlebars->25->1204",
- "default.handlebars->25->1535",
- "default.handlebars->25->1651",
- "default.handlebars->25->1663",
+ "default.handlebars->25->1537",
+ "default.handlebars->25->1654",
+ "default.handlebars->25->1666",
"default.handlebars->25->575"
]
},
@@ -21849,8 +21861,8 @@
"zh-chs": "要求:{0}。",
"xloc": [
"default-mobile.handlebars->9->89",
- "default.handlebars->25->1484",
- "default.handlebars->25->1641"
+ "default.handlebars->25->1486",
+ "default.handlebars->25->1644"
]
},
{
@@ -22092,7 +22104,7 @@
"ru": "Ограничения",
"zh-chs": "限制條件",
"xloc": [
- "default.handlebars->25->1573"
+ "default.handlebars->25->1575"
]
},
{
@@ -22315,8 +22327,8 @@
"nl": "SMS",
"zh-chs": "短信",
"xloc": [
- "default.handlebars->25->1612",
- "default.handlebars->25->1617",
+ "default.handlebars->25->1615",
+ "default.handlebars->25->1620",
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
"login.handlebars->container->column_l->centralTable->1->0->logincell->tokenpanel->1->7->1->4->1->3"
]
@@ -22331,7 +22343,7 @@
"nl": "SMS geschikt telefoonnummer voor deze gebruiker.",
"zh-chs": "此用户的短信功能电话号码。",
"xloc": [
- "default.handlebars->25->1629"
+ "default.handlebars->25->1632"
]
},
{
@@ -22735,7 +22747,7 @@
"xloc": [
"default-mobile.handlebars->9->259",
"default-mobile.handlebars->9->345",
- "default.handlebars->25->1613",
+ "default.handlebars->25->1616",
"default.handlebars->25->250",
"default.handlebars->25->636",
"default.handlebars->25->821"
@@ -22755,7 +22767,7 @@
"ru": "Ключ безопасности",
"zh-chs": "安全密鑰",
"xloc": [
- "default.handlebars->25->1610"
+ "default.handlebars->25->1613"
]
},
{
@@ -22791,7 +22803,7 @@
"xloc": [
"default.handlebars->25->1383",
"default.handlebars->25->1440",
- "default.handlebars->25->1509",
+ "default.handlebars->25->1511",
"default.handlebars->25->394",
"default.handlebars->25->751",
"default.handlebars->25->753",
@@ -22819,7 +22831,7 @@
"xloc": [
"default.handlebars->25->1382",
"default.handlebars->25->1439",
- "default.handlebars->25->1508",
+ "default.handlebars->25->1510",
"default.handlebars->25->393",
"default.handlebars->25->752",
"default.handlebars->meshContextMenu->cxselectnone"
@@ -22905,7 +22917,7 @@
"zh-chs": "选择要对所有选定用户执行的操作。",
"xloc": [
"default.handlebars->25->1441",
- "default.handlebars->25->1510"
+ "default.handlebars->25->1512"
]
},
{
@@ -23046,14 +23058,14 @@
"nl": "Stuur een SMS bericht naar deze gebruiker",
"zh-chs": "发送短信给该用户",
"xloc": [
- "default.handlebars->25->1618"
+ "default.handlebars->25->1621"
]
},
{
"en": "Send a email message to this user",
"nl": "Stuur een e-mailbericht naar deze gebruiker",
"xloc": [
- "default.handlebars->25->1620"
+ "default.handlebars->25->1623"
]
},
{
@@ -23070,7 +23082,7 @@
"ru": "Отправить уведомление всем пользователям этой группы.",
"zh-chs": "向該組中的所有用戶發送通知。",
"xloc": [
- "default.handlebars->25->1532"
+ "default.handlebars->25->1534"
]
},
{
@@ -23137,7 +23149,7 @@
"ru": "Отправить приглашение по email.",
"zh-chs": "發送邀請電子郵件。",
"xloc": [
- "default.handlebars->25->1483"
+ "default.handlebars->25->1485"
]
},
{
@@ -23203,7 +23215,7 @@
"ru": "Отправить уведомление пользователю",
"zh-chs": "發送用戶通知",
"xloc": [
- "default.handlebars->25->1622"
+ "default.handlebars->25->1625"
]
},
{
@@ -23255,7 +23267,7 @@
"ru": "Резервное копирование сервера",
"zh-chs": "服務器備份",
"xloc": [
- "default.handlebars->25->1493"
+ "default.handlebars->25->1495"
]
},
{
@@ -23272,7 +23284,7 @@
"ru": "Сертификат сервера",
"zh-chs": "服務器證書",
"xloc": [
- "default.handlebars->25->1767"
+ "default.handlebars->25->1770"
]
},
{
@@ -23289,7 +23301,7 @@
"ru": "База данных сервера",
"zh-chs": "服務器數據庫",
"xloc": [
- "default.handlebars->25->1768"
+ "default.handlebars->25->1771"
]
},
{
@@ -23310,7 +23322,7 @@
"default-mobile.handlebars->9->416",
"default.handlebars->25->1280",
"default.handlebars->25->1308",
- "default.handlebars->25->1490",
+ "default.handlebars->25->1492",
"default.handlebars->25->588",
"default.handlebars->25->607"
]
@@ -23330,7 +23342,7 @@
"zh-chs": "服務器權限",
"xloc": [
"default.handlebars->25->1427",
- "default.handlebars->25->1502"
+ "default.handlebars->25->1504"
]
},
{
@@ -23347,7 +23359,7 @@
"ru": "Квота сервера",
"zh-chs": "服務器配額",
"xloc": [
- "default.handlebars->25->1584"
+ "default.handlebars->25->1587"
]
},
{
@@ -23364,7 +23376,7 @@
"ru": "Восстановление сервера",
"zh-chs": "服務器還原",
"xloc": [
- "default.handlebars->25->1494"
+ "default.handlebars->25->1496"
]
},
{
@@ -23381,7 +23393,7 @@
"ru": "Права",
"zh-chs": "服務器權限",
"xloc": [
- "default.handlebars->25->1583"
+ "default.handlebars->25->1586"
]
},
{
@@ -23398,7 +23410,7 @@
"ru": "Состояние сервера",
"zh-chs": "服務器狀態",
"xloc": [
- "default.handlebars->25->1718"
+ "default.handlebars->25->1721"
]
},
{
@@ -23432,7 +23444,7 @@
"ru": "Трассировка сервера",
"zh-chs": "服務器跟踪",
"xloc": [
- "default.handlebars->25->1778"
+ "default.handlebars->25->1781"
]
},
{
@@ -23449,7 +23461,7 @@
"ru": "Обновление сервера",
"zh-chs": "服務器更新",
"xloc": [
- "default.handlebars->25->1495"
+ "default.handlebars->25->1497"
]
},
{
@@ -23571,7 +23583,7 @@
"ru": "ServerStats.csv",
"zh-chs": "ServerStats.csv",
"xloc": [
- "default.handlebars->25->1759"
+ "default.handlebars->25->1762"
]
},
{
@@ -23612,7 +23624,7 @@
"en": "Session",
"nl": "Sessie",
"xloc": [
- "default.handlebars->25->1682"
+ "default.handlebars->25->1685"
]
},
{
@@ -24151,8 +24163,8 @@
"ru": "Размер",
"zh-chs": "尺寸",
"xloc": [
- "default.handlebars->25->1685",
- "default.handlebars->25->1700",
+ "default.handlebars->25->1688",
+ "default.handlebars->25->1703",
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize"
]
},
@@ -24963,8 +24975,8 @@
"en": "Start Time",
"nl": "Start tijd",
"xloc": [
- "default.handlebars->25->1683",
- "default.handlebars->25->1702",
+ "default.handlebars->25->1686",
+ "default.handlebars->25->1705",
"default.handlebars->25->700"
]
},
@@ -25017,8 +25029,8 @@
"ru": "Статус",
"zh-chs": "狀態",
"xloc": [
- "default.handlebars->25->1634",
- "default.handlebars->25->1695",
+ "default.handlebars->25->1637",
+ "default.handlebars->25->1698",
"default.handlebars->container->column_l->p42->p42tbl->1->0->7"
]
},
@@ -25570,7 +25582,7 @@
"xloc": [
"default-mobile.handlebars->9->162",
"default.handlebars->25->1247",
- "default.handlebars->25->1689",
+ "default.handlebars->25->1692",
"default.handlebars->25->215",
"default.handlebars->25->445",
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal",
@@ -25609,7 +25621,7 @@
"zh-chs": "終端通知",
"xloc": [
"default.handlebars->25->1167",
- "default.handlebars->25->1602",
+ "default.handlebars->25->1605",
"default.handlebars->25->515"
]
},
@@ -25628,7 +25640,7 @@
"zh-chs": "終端提示",
"xloc": [
"default.handlebars->25->1166",
- "default.handlebars->25->1601",
+ "default.handlebars->25->1604",
"default.handlebars->25->514"
]
},
@@ -25772,7 +25784,7 @@
"ru": "На данный момент уведомлений нет",
"zh-chs": "目前沒有任何通知",
"xloc": [
- "default.handlebars->25->1710"
+ "default.handlebars->25->1713"
]
},
{
@@ -27005,9 +27017,9 @@
"default.handlebars->25->1144",
"default.handlebars->25->1145",
"default.handlebars->25->13",
- "default.handlebars->25->1674",
- "default.handlebars->25->1687",
- "default.handlebars->25->1688",
+ "default.handlebars->25->1677",
+ "default.handlebars->25->1690",
+ "default.handlebars->25->1691",
"default.handlebars->25->392",
"default.handlebars->25->41",
"default.handlebars->25->42",
@@ -27052,7 +27064,7 @@
"ru": "Неизвестное действие",
"zh-chs": "未知動作",
"xloc": [
- "default.handlebars->25->1724"
+ "default.handlebars->25->1727"
]
},
{
@@ -27069,8 +27081,8 @@
"ru": "Неизвестное устройство",
"zh-chs": "未知設備",
"xloc": [
- "default.handlebars->25->1546",
- "default.handlebars->25->1662"
+ "default.handlebars->25->1548",
+ "default.handlebars->25->1665"
]
},
{
@@ -27087,9 +27099,9 @@
"ru": "Неизвестная группа устройств",
"zh-chs": "未知設備組",
"xloc": [
- "default.handlebars->25->1540",
- "default.handlebars->25->1650",
- "default.handlebars->25->1728"
+ "default.handlebars->25->1542",
+ "default.handlebars->25->1653",
+ "default.handlebars->25->1731"
]
},
{
@@ -27106,7 +27118,7 @@
"ru": "Неизвестная группа",
"zh-chs": "未知群組",
"xloc": [
- "default.handlebars->25->1720"
+ "default.handlebars->25->1723"
]
},
{
@@ -27141,7 +27153,7 @@
"ru": "Неизвестная группа пользователей",
"zh-chs": "未知用戶組",
"xloc": [
- "default.handlebars->25->1656"
+ "default.handlebars->25->1659"
]
},
{
@@ -27230,7 +27242,7 @@
"ru": "Актуально",
"zh-chs": "最新",
"xloc": [
- "default.handlebars->25->1785"
+ "default.handlebars->25->1788"
]
},
{
@@ -27479,8 +27491,8 @@
"ru": "Использовано",
"zh-chs": "用過的",
"xloc": [
- "default.handlebars->25->1714",
- "default.handlebars->25->1716"
+ "default.handlebars->25->1717",
+ "default.handlebars->25->1719"
]
},
{
@@ -27499,8 +27511,8 @@
"xloc": [
"default.handlebars->25->1205",
"default.handlebars->25->1428",
- "default.handlebars->25->1536",
- "default.handlebars->25->1707",
+ "default.handlebars->25->1538",
+ "default.handlebars->25->1710",
"default.handlebars->25->193",
"default.handlebars->25->577"
]
@@ -27556,7 +27568,7 @@
"ru": "Учетные записи пользователей",
"zh-chs": "用戶帳號",
"xloc": [
- "default.handlebars->25->1733"
+ "default.handlebars->25->1736"
]
},
{
@@ -27593,7 +27605,7 @@
"zh-chs": "用戶同意",
"xloc": [
"default.handlebars->25->1173",
- "default.handlebars->25->1608",
+ "default.handlebars->25->1611",
"default.handlebars->25->521"
]
},
@@ -27613,9 +27625,9 @@
"xloc": [
"default.handlebars->25->1261",
"default.handlebars->25->1262",
- "default.handlebars->25->1517",
- "default.handlebars->25->1658",
- "default.handlebars->25->1677",
+ "default.handlebars->25->1519",
+ "default.handlebars->25->1661",
+ "default.handlebars->25->1680",
"default.handlebars->25->576"
]
},
@@ -27650,7 +27662,7 @@
"ru": "Членство в группах пользователей",
"zh-chs": "用戶組成員資格",
"xloc": [
- "default.handlebars->25->1655"
+ "default.handlebars->25->1658"
]
},
{
@@ -27674,14 +27686,15 @@
"zh-chs": "用戶標識",
"xloc": [
"default.handlebars->25->1322",
- "default.handlebars->25->1578"
+ "default.handlebars->25->1580",
+ "default.handlebars->25->1581"
]
},
{
"en": "User Identifiers",
"xloc": [
"default.handlebars->25->1259",
- "default.handlebars->25->1565"
+ "default.handlebars->25->1567"
]
},
{
@@ -27778,7 +27791,7 @@
"ru": "Сессии пользователя",
"zh-chs": "用戶會話",
"xloc": [
- "default.handlebars->25->1750"
+ "default.handlebars->25->1753"
]
},
{
@@ -27912,7 +27925,7 @@
"zh-chs": "用戶名",
"xloc": [
"default-mobile.handlebars->9->257",
- "default.handlebars->25->1474",
+ "default.handlebars->25->1476",
"default.handlebars->25->247",
"default.handlebars->25->277",
"default.handlebars->25->634",
@@ -27972,9 +27985,9 @@
"ru": "Пользователи",
"zh-chs": "用戶數",
"xloc": [
- "default.handlebars->25->1505",
- "default.handlebars->25->1528",
- "default.handlebars->25->1749",
+ "default.handlebars->25->1507",
+ "default.handlebars->25->1530",
+ "default.handlebars->25->1752",
"default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral"
]
},
@@ -27992,7 +28005,7 @@
"ru": "Сессии пользователей",
"zh-chs": "用戶會話",
"xloc": [
- "default.handlebars->25->1737"
+ "default.handlebars->25->1740"
]
},
{
@@ -28077,7 +28090,7 @@
"ru": "Проверенный",
"zh-chs": "已驗證",
"xloc": [
- "default.handlebars->25->1636"
+ "default.handlebars->25->1639"
]
},
{
@@ -28181,7 +28194,7 @@
"ru": "Версия несовместима, пожалуйста, сначала обновите установку MeshCentral",
"zh-chs": "版本不兼容,请先升级您的MeshCentral安装",
"xloc": [
- "default.handlebars->25->1781"
+ "default.handlebars->25->1784"
]
},
{
@@ -28249,8 +28262,8 @@
"ru": "Просмотр журнала изменений",
"zh-chs": "查看变更日志",
"xloc": [
- "default.handlebars->25->1784",
- "default.handlebars->25->1786"
+ "default.handlebars->25->1787",
+ "default.handlebars->25->1789"
]
},
{
@@ -28301,7 +28314,7 @@
"ru": "Посмотреть примечания об этом пользователе",
"zh-chs": "查看有關此用戶的註釋",
"xloc": [
- "default.handlebars->25->1616"
+ "default.handlebars->25->1619"
]
},
{
@@ -28508,8 +28521,8 @@
"ru": "Веб-сервер",
"zh-chs": "網絡服務器",
"xloc": [
- "default.handlebars->25->1770",
- "default.handlebars->25->1771"
+ "default.handlebars->25->1773",
+ "default.handlebars->25->1774"
]
},
{
@@ -28526,7 +28539,7 @@
"ru": "Запросы веб-сервера",
"zh-chs": "Web服務器請求",
"xloc": [
- "default.handlebars->25->1772"
+ "default.handlebars->25->1775"
]
},
{
@@ -28543,7 +28556,7 @@
"ru": "Ретранслятор Web Socket",
"zh-chs": "Web套接字中繼",
"xloc": [
- "default.handlebars->25->1773"
+ "default.handlebars->25->1776"
]
},
{
@@ -28648,7 +28661,7 @@
"ru": "Будет изменено при следующем входе в систему.",
"zh-chs": "下次登錄時將更改。",
"xloc": [
- "default.handlebars->25->1588"
+ "default.handlebars->25->1591"
]
},
{
@@ -29601,7 +29614,7 @@
"ru": "\\\\'",
"zh-chs": "\\\\'",
"xloc": [
- "default.handlebars->25->1782"
+ "default.handlebars->25->1785"
]
},
{
@@ -29876,7 +29889,7 @@
"ru": "свободно",
"zh-chs": "自由",
"xloc": [
- "default.handlebars->25->1745"
+ "default.handlebars->25->1748"
]
},
{
@@ -30162,7 +30175,7 @@
"ru": "k max, пусто по умолчанию",
"zh-chs": "k max,默认为空白",
"xloc": [
- "default.handlebars->25->1491"
+ "default.handlebars->25->1493"
]
},
{
@@ -30246,7 +30259,7 @@
"ru": "servertrace.csv",
"zh-chs": "servertrace.csv",
"xloc": [
- "default.handlebars->25->1780"
+ "default.handlebars->25->1783"
]
},
{
@@ -30303,7 +30316,7 @@
"ru": "time, conn.agent, conn.users, conn.usersessions, conn.relaysession, conn.intelamt, mem.external, mem.heapused, mem.heaptotal, mem.rss",
"zh-chs": "時間,conn.agent,conn.users,conn.usersessions,conn.relaysession,conn.intelamt,mem.external,mem.heapused,mem.heaptotal,mem.rss",
"xloc": [
- "default.handlebars->25->1758"
+ "default.handlebars->25->1761"
]
},
{
@@ -30320,7 +30333,7 @@
"ru": "time, source, message",
"zh-chs": "時間,來源,訊息",
"xloc": [
- "default.handlebars->25->1779"
+ "default.handlebars->25->1782"
]
},
{
@@ -30351,7 +30364,7 @@
"ru": "всего",
"zh-chs": "總",
"xloc": [
- "default.handlebars->25->1746"
+ "default.handlebars->25->1749"
]
},
{
@@ -30510,7 +30523,7 @@
"zh-chs": "{0} Kb",
"xloc": [
"default.handlebars->25->1375",
- "default.handlebars->25->1686"
+ "default.handlebars->25->1689"
]
},
{
@@ -30564,7 +30577,7 @@
"ru": "{0} активных сессий",
"zh-chs": "{0}個活動會話",
"xloc": [
- "default.handlebars->25->1628"
+ "default.handlebars->25->1631"
]
},
{
@@ -30600,7 +30613,7 @@
"xloc": [
"default-mobile.handlebars->9->119",
"default.handlebars->25->1385",
- "default.handlebars->25->1701"
+ "default.handlebars->25->1704"
]
},
{
@@ -30658,7 +30671,7 @@
"ru": "{0} групп",
"zh-chs": "{0}個群組",
"xloc": [
- "default.handlebars->25->1593"
+ "default.handlebars->25->1596"
]
},
{
diff --git a/views/default.handlebars b/views/default.handlebars
index f034dfad..2289965a 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -2866,8 +2866,10 @@
go(xviewmode);
goBackStack.push(2);
} else if (args.gotouser != null) {
- if ((users == null) || (users['user/' + domain + '/' + args.gotouser] == null)) return; // This user is not loaded yet
- gotoUser('user/' + domain + '/' + args.gotouser);
+ var xuserid = args.gotouser;
+ if (args.gotouser.indexOf('/') < 0) { xuserid = 'user/' + domain + '/' + args.gotouser; }
+ if ((users == null) || (users[xuserid] == null)) return; // This user is not loaded yet
+ gotoUser(xuserid);
go(xviewmode);
goBackStack.push(4);
} else if (args.gotougrp != null) {
@@ -10025,7 +10027,7 @@
}
function addUserHtml(user, sessions) {
- var x = '', gray = ' gray', icon = 'm2', msg = '', self = (user.name != userinfo.name), lastAccess = '', permissions = '';
+ var x = '', gray = ' gray', icon = 'm2', msg = '', self = (user._id != userinfo._id), lastAccess = '', permissions = '';
if (sessions != null) {
gray = '';
if (self) {
@@ -10072,6 +10074,12 @@
}
}
+ // If we are a cross-domain administrator, add the domain.
+ if ((userinfo.crossDomain != null)) {
+ var userdomain = user._id.split('/')[1];
+ if (userdomain != '') { username += ', ' + userdomain + ''; }
+ }
+
if ((user.otpsecret > 0) || (user.otphkeys > 0) || ((user.otpekey == 1) && (features & 0x00800000)) || ((user.phone != null) && (features & 0x04000000))) { username += ' '; }
if (user.phone != null) { username += ' '; }
if ((user.siteadmin != null) && ((user.siteadmin & 32) != 0) && (user.siteadmin != 0xFFFFFFFF)) { username += ' '; }
@@ -10288,6 +10296,14 @@
function showCreateNewAccountDialog() {
if (xxdialogMode) return;
var x = '';
+
+ if (userinfo.crossDomain) {
+ var y = '';
+ x += addHtmlValue("Domain", y);
+ }
+
if ((features & 0x200000) == 0) { x += addHtmlValue('' + "Username" + '', ''); }
x += addHtmlValue('' + "Email" + '', '');
x += addHtmlValue('' + "Password" + '', '');
@@ -10345,6 +10361,7 @@
x.emailVerified = Q('p4verifiedEmail').checked;
x.emailInvitation = Q('p4invitationEmail').checked;
}
+ if (userinfo.crossDomain) { x.domain = userinfo.crossDomain[parseInt(Q('p4domain').value)]; }
meshserver.send(x);
}
@@ -10916,7 +10933,13 @@
if ((args.hide & 8) != 0) { x += '
' + addDeviceAttribute("Name", user.name); } // If title bar is hidden, display the user name here
var email = user.email?EscapeHtml(user.email):'' + "Not set" + '', everify = '';
if (serverinfo.emailcheck) { everify = ((user.emailVerified == true) ? '✓ ' : '✗ '); }
- if (user.name.toLowerCase() != user._id.split('/')[2]) { x += addDeviceAttribute("User Identifier", user._id.split('/')[2]); }
+
+ if (userinfo.crossDomain) {
+ x += addDeviceAttribute("User Identifier", EscapeHtml(user._id));
+ } else {
+ if (user.name.toLowerCase() != user._id.split('/')[2]) { x += addDeviceAttribute("User Identifier", EscapeHtml(user._id.split('/')[2])); }
+ }
+
if (((user.siteadmin != 0xFFFFFFFF) || (userinfo.siteadmin == 0xFFFFFFFF))) { // If we are not site admin, we can't change a admin email.
x += addDeviceAttribute("Email", everify + email + ' ' + ' ');
} else {
@@ -11016,7 +11039,7 @@
// Change the URL
var urlviewmode = '';
if (((features & 0x10000000) == 0) && (xxcurrentView >= 30) && (xxcurrentView <= 39) && (currentUser != null)) {
- urlviewmode = '?viewmode=' + xxcurrentView + '&gotouser=' + currentUser._id.split('/')[2];
+ urlviewmode = '?viewmode=' + xxcurrentView + '&gotouser=' + ((userinfo.crossDomain)?currentUser._id:currentUser._id.split('/')[2]);
for (var i in urlargs) { urlviewmode += ('&' + i + '=' + urlargs[i]); }
try { window.history.replaceState({}, document.title, window.location.pathname + urlviewmode); } catch (ex) { }
}
@@ -12004,7 +12027,7 @@
} else if ((x >= 20) && (x <= 29)) {
if (currentMesh) { window.open(window.location.origin + '{{{domainurl}}}' + '?gotomesh=' + currentMesh._id.split('/')[2] + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentMesh._id); }
} else if ((x >= 30) && (x <= 39)) {
- if (currentUser) { window.open(window.location.origin + '{{{domainurl}}}' + '?gotouser=' + currentUser._id.split('/')[2] + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentUser._id); }
+ if (currentUser) { window.open(window.location.origin + '{{{domainurl}}}' + '?gotouser=' + ((userinfo.crossDomain)?currentUser._id:currentUser._id.split('/')[2]) + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentUser._id); }
} else if ((x >= 50) && (x <= 59)) {
if (currentUserGroup) { window.open(window.location.origin + '{{{domainurl}}}' + '?gotougrp=' + currentUserGroup._id.split('/')[2] + '&viewmode=' + x + '&hide=16', 'meshcentral:' + currentUserGroup._id); }
} else { // if (x < 10))
@@ -12043,7 +12066,7 @@
} else if ((xxcurrentView >= 20) && (xxcurrentView <= 29)) { // Device Group Link
if (currentMesh != null) { urlviewmode = '?viewmode=' + xxcurrentView + '&gotomesh=' + currentMesh._id.split('/')[2]; }
} else if ((xxcurrentView >= 30) && (xxcurrentView <= 39)) { // User Link
- if (currentUser != null) { urlviewmode = '?viewmode=' + xxcurrentView + '&gotouser=' + currentUser._id.split('/')[2]; }
+ if (currentUser != null) { urlviewmode = '?viewmode=' + xxcurrentView + '&gotouser=' + ((userinfo.crossDomain)?currentUser._id:currentUser._id.split('/')[2]); }
} else if ((xxcurrentView >= 51) && (xxcurrentView <= 51)) { // User Group Link
if ((currentUserGroup != null) && (currentUserGroup._id != null)) { urlviewmode = '?viewmode=' + xxcurrentView + '&gotougrp=' + currentUserGroup._id.split('/')[2]; }
} else if (xxcurrentView > 1) { urlviewmode = '?viewmode=' + xxcurrentView; }