From 27191d3cd3c7cee69f80e7ca58b30bbbaff54d3c Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 27 May 2020 17:23:38 -0700 Subject: [PATCH] More work on cross-domain admin. --- meshctrl.js | 61 ++++- meshuser.js | 32 ++- translate/translate.json | 540 ++++++++++++++++++++------------------- views/default.handlebars | 14 +- 4 files changed, 361 insertions(+), 286 deletions(-) diff --git a/meshctrl.js b/meshctrl.js index f6cd5b19..969e90c2 100644 --- a/meshctrl.js +++ b/meshctrl.js @@ -7,7 +7,7 @@ try { require('ws'); } catch (ex) { console.log('Missing module "ws", type "npm var settings = {}; const crypto = require('crypto'); const args = require('minimist')(process.argv.slice(2)); -const possibleCommands = ['listusers', 'listusersessions', 'listdevicegroups', 'listdevices', 'listusersofdevicegroup', 'serverinfo', 'userinfo', 'adduser', 'removeuser', 'adddevicegroup', 'removedevicegroup', 'broadcast', 'showevents', 'addusertodevicegroup', 'removeuserfromdevicegroup', 'addusertodevice', 'removeuserfromdevice', 'sendinviteemail', 'generateinvitelink', 'config', 'movetodevicegroup', 'deviceinfo']; +const possibleCommands = ['listusers', 'listusersessions', 'listdevicegroups', 'listdevices', 'listusersofdevicegroup', 'serverinfo', 'userinfo', 'adduser', 'removeuser', 'adddevicegroup', 'removedevicegroup', 'broadcast', 'showevents', 'addusertodevicegroup', 'removeuserfromdevicegroup', 'addusertodevice', 'removeuserfromdevice', 'sendinviteemail', 'generateinvitelink', 'config', 'movetodevicegroup', 'deviceinfo', 'addusergroup', 'listusergroups', 'removeusergroup']; if (args.proxy != null) { try { require('https-proxy-agent'); } catch (ex) { console.log('Missing module "https-proxy-agent", type "npm install https-proxy-agent" to install it.'); return; } } if (args['_'].length == 0) { @@ -20,6 +20,7 @@ if (args['_'].length == 0) { console.log(" UserInfo - Show user information."); console.log(" ListUsers - List user accounts."); console.log(" ListUsersSessions - List online users."); + console.log(" ListUserGroups - List user groups."); console.log(" ListDevices - List devices."); console.log(" ListDeviceGroups - List device groups."); console.log(" ListUsersOfDeviceGroup - List the users in a device group."); @@ -27,6 +28,8 @@ if (args['_'].length == 0) { console.log(" Config - Perform operation on config.json file."); console.log(" AddUser - Create a new user account."); console.log(" RemoveUser - Delete a user account."); + console.log(" AddUserGroup - Create a new user group."); + console.log(" RemoveUserGroup - Delete a user group."); console.log(" AddDeviceGroup - Create a new device group."); console.log(" RemoveDeviceGroup - Delete a device group."); console.log(" MoveToDeviceGroup - Move a device to a different device group."); @@ -45,7 +48,7 @@ if (args['_'].length == 0) { console.log(" --token [number] - 2nd factor authentication token."); console.log(" --loginkey [hex] - Server login key in hex."); console.log(" --loginkeyfile [file] - File containing server login key in hex."); - console.log(" --domain [domainid] - Domain id, default is empty, only used with loginkey."); + console.log(" --logindomain [domainid] - Domain id, default is empty, only used with loginkey."); console.log(" --proxy [http://proxy:1] - Specify an HTTP proxy."); return; } else { @@ -60,6 +63,7 @@ if (args['_'].length == 0) { case 'userinfo': { ok = true; break; } case 'listusers': { ok = true; break; } case 'listusersessions': { ok = true; break; } + case 'listusergroups': { ok = true; break; } case 'listdevicegroups': { ok = true; break; } case 'listdevices': { ok = true; break; } case 'listusersofdevicegroup': { @@ -132,6 +136,16 @@ if (args['_'].length == 0) { else { ok = true; } break; } + case 'addusergroup': { + if (args.name == null) { console.log("New user group name missing, use --name [name]"); } + else { ok = true; } + break; + } + case 'removeusergroup': { + if (args.groupid == null) { console.log("Remove user group id missing, use --groupid [id]"); } + else { ok = true; } + break; + } case 'sendinviteemail': { if ((args.id == null) && (args.group == null)) { console.log("Device group identifier missing, use --id [groupid] or --group [groupname]"); } else if (args.email == null) { console.log("Device email is missing, use --email [email]"); } @@ -211,6 +225,12 @@ if (args['_'].length == 0) { console.log(" MeshCtrl ListUserSessions --json"); break; } + case 'listusergroups': { + console.log("List user groups on the MeshCentral server, Example usages:\r\n"); + console.log(" MeshCtrl ListUserGroups"); + console.log(" MeshCtrl ListUserGroups --json"); + break; + } case 'listdevicegroups': { console.log("List the device groups for this account, Example usages:\r\n"); console.log(" MeshCtrl ListDeviceGroups "); @@ -260,6 +280,7 @@ if (args['_'].length == 0) { console.log(" --locked - This account will be locked."); console.log(" --nonewgroups - Account will not be allowed to create device groups."); console.log(" --notools - Account not see MeshCMD download links."); + console.log(" --domain [domain] - Account domain, only for cross-domain admins."); break; } case 'removeuser': { @@ -574,11 +595,11 @@ function serverConnect() { if (ckey != null) { var domainid = '', username = 'admin'; - if (args.domain != null) { domainid = args.domain; } + if (args.logindomain != null) { domainid = args.logindomain; } if (args.loginuser != null) { username = args.loginuser; } url += '?auth=' + encodeCookie({ userid: 'user/' + domainid + '/' + username, domainid: domainid }, ckey); } else { - if (args.domain != null) { console.log("--domain can only be used along with --loginkey."); process.exit(); return; } + if (args.logindomain != null) { console.log("--logindomain can only be used along with --loginkey."); process.exit(); return; } } const ws = new WebSocket(url, options); @@ -591,6 +612,7 @@ function serverConnect() { case 'userinfo': { break; } case 'listusers': { ws.send(JSON.stringify({ action: 'users' })); break; } case 'listusersessions': { ws.send(JSON.stringify({ action: 'wssessioncount' })); } + case 'listusergroups': { ws.send(JSON.stringify({ action: 'usergroups' })); } case 'listdevicegroups': { ws.send(JSON.stringify({ action: 'meshes' })); break; } case 'listusersofdevicegroup': { ws.send(JSON.stringify({ action: 'meshes' })); break; } case 'listdevices': { @@ -618,14 +640,28 @@ function serverConnect() { if (args.email) { op.email = args.email; if (args.emailverified) { op.emailVerified = true; } } if (args.resetpass) { op.resetNextLogin = true; } if (siteadmin != 0) { op.siteadmin = siteadmin; } + if (args.domain) { op.domain = args.domain; } ws.send(JSON.stringify(op)); break; } case 'removeuser': { - var op = { action: 'deleteuser', userid: args.userid, responseid: 'meshctrl' }; + var userid = args.userid; + if ((args.domain != null) && (userid.indexOf('/') < 0)) { userid = 'user/' + args.domain + '/' + userid; } + ws.send(JSON.stringify({ action: 'deleteuser', userid: userid, responseid: 'meshctrl' })); + break; + } + case 'addusergroup': { + var op = { action: 'createusergroup', name: args.name, desc: args.desc, responseid: 'meshctrl' }; + if (args.domain) { op.domain = args.domain; } ws.send(JSON.stringify(op)); break; } + case 'removeusergroup': { + var ugrpid = args.groupid; + if ((args.domain != null) && (userid.indexOf('/') < 0)) { ugrpid = 'ugrp/' + args.domain + '/' + ugrpid; } + ws.send(JSON.stringify({ action: 'deleteusergroup', ugrpid: ugrpid, responseid: 'meshctrl' })); + break; + } case 'adddevicegroup': { var op = { action: 'createmesh', meshname: args.name, meshtype: 2, responseid: 'meshctrl' }; if (args.desc) { op.desc = args.desc; } @@ -807,6 +843,8 @@ function serverConnect() { case 'removemeshuser': // case 'inviteAgent': // case 'adddeviceuser': // + case 'createusergroup': // + case 'deleteusergroup': // case 'userbroadcast': { // BROADCAST if (data.responseid == 'meshctrl') { if (data.meshid) { console.log(data.result, data.meshid); } @@ -832,6 +870,19 @@ function serverConnect() { process.exit(); break; } + case 'usergroups': { // LIST USER GROUPS + if (args.json) { + console.log(JSON.stringify(data.ugroups, ' ', 2)); + } else { + for (var i in data.ugroups) { + var x = i + ', ' + data.ugroups[i].name; + if (data.ugroups[i].desc && (data.ugroups[i].desc != '')) { x += ', ' + data.ugroups[i].desc; } + console.log(x); + } + } + process.exit(); + break; + } case 'users': { // LISTUSERS if (args.filter) { // Filter the list of users diff --git a/meshuser.js b/meshuser.js index 3e0ceda9..e4cf10f0 100644 --- a/meshuser.js +++ b/meshuser.js @@ -1398,7 +1398,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if (parent.parent.multiServer == null) { // No peering, use simple session counting for (i in parent.wssessions) { - if (parent.wssessions[i][0].domainid == domain.id) { + if ((obj.crossDomain === true) || (parent.wssessions[i][0].domainid == domain.id)) { if ((user.groups == null) || (user.groups.length == 0)) { // No user groups, count everything wssessions[i] = parent.wssessions[i].length; @@ -1414,7 +1414,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } else { // We have peer servers, use more complex session counting for (i in parent.sessionsCount) { - if (i.split('/')[1] == domain.id) { + if ((obj.crossDomain === true) || (i.split('/')[1] == domain.id)) { if ((user.groups == null) || (user.groups.length == 0)) { // No user groups, count everything wssessions[i] = parent.sessionsCount[i]; @@ -1441,6 +1441,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use if ((user.siteadmin & 2) == 0) { err = 'Permission denied'; } else if (common.validateString(command.userid, 1, 2048) == false) { err = 'Invalid userid'; } else { + if (command.userid.indexOf('/') < 0) { command.userid = 'user/' + domain.id + '/' + command.userid; } delusersplit = command.userid.split('/'); deluserid = command.userid; deluser = parent.users[deluserid]; @@ -1950,19 +1951,32 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'deleteusergroup': { - if ((user.siteadmin & SITERIGHT_USERGROUPS) == 0) { return; } + var err = null; + + if ((user.siteadmin & SITERIGHT_USERGROUPS) == 0) { err = "Permission denied"; } // Change the name or description of a user group - if (common.validateString(command.ugrpid, 1, 1024) == false) break; // Check the user group id - var ugroupidsplit = command.ugrpid.split('/'); - if ((ugroupidsplit.length != 3) || (ugroupidsplit[0] != 'ugrp') || ((obj.crossDomain !== true) && (ugroupidsplit[1] != domain.id))) break; + else if (common.validateString(command.ugrpid, 1, 1024) == false) { err = "Invalid group id"; } // Check the user group id + else { + var ugroupidsplit = command.ugrpid.split('/'); + if ((ugroupidsplit.length != 3) || (ugroupidsplit[0] != 'ugrp') || ((obj.crossDomain !== true) && (ugroupidsplit[1] != domain.id))) { err = "Invalid domain id"; } + } // Get the domain var delGroupDomain = parent.parent.config.domains[ugroupidsplit[1]]; - if (delGroupDomain == null) break; + if (delGroupDomain == null) { err = "Invalid domain id"; } + + // Handle any errors + if (err != null) { + if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'deleteusergroup', responseid: command.responseid, result: err })); } catch (ex) { } } + break; + } db.Get(command.ugrpid, function (err, groups) { - if ((err != null) || (groups.length != 1)) return; + if ((err != null) || (groups.length != 1)) { + try { ws.send(JSON.stringify({ action: 'deleteusergroup', responseid: command.responseid, result: 'Unknown device group' })); } catch (ex) { } + return; + } var group = groups[0]; // Unlink any user and meshes that have a link to this group @@ -2007,6 +2021,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use // Log in the auth log if (parent.parent.authlog) { parent.parent.authLog('https', 'User ' + user.name + ' deleted user group ' + group.name); } + + try { ws.send(JSON.stringify({ action: 'deleteusergroup', responseid: command.responseid, result: 'ok', ugrpid: group._id })); } catch (ex) { } }); break; } diff --git a/translate/translate.json b/translate/translate.json index 38d14118..814e5ce1 100644 --- a/translate/translate.json +++ b/translate/translate.json @@ -192,7 +192,7 @@ "zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。", "xloc": [ "default.handlebars->25->1258", - "default.handlebars->25->1569" + "default.handlebars->25->1571" ] }, { @@ -619,7 +619,7 @@ "default-mobile.handlebars->9->108", "default-mobile.handlebars->9->284", "default.handlebars->25->1365", - "default.handlebars->25->1715", + "default.handlebars->25->1719", "default.handlebars->25->750" ] }, @@ -669,7 +669,7 @@ "ru": "1 активная сессия", "zh-chs": "1個活動會話", "xloc": [ - "default.handlebars->25->1633" + "default.handlebars->25->1637" ] }, { @@ -731,7 +731,7 @@ "ru": "1 группа", "zh-chs": "1組", "xloc": [ - "default.handlebars->25->1598" + "default.handlebars->25->1602" ] }, { @@ -1131,7 +1131,7 @@ "zh-chs": "啟用第二因素身份驗證", "xloc": [ "default.handlebars->25->1436", - "default.handlebars->25->1620" + "default.handlebars->25->1624" ] }, { @@ -1878,7 +1878,7 @@ "ru": "Доступ к файлам сервера", "zh-chs": "訪問服務器文件", "xloc": [ - "default.handlebars->25->1575" + "default.handlebars->25->1577" ] }, { @@ -2003,7 +2003,7 @@ "zh-chs": "帐户已被锁定", "xloc": [ "default.handlebars->25->1438", - "default.handlebars->25->1572" + "default.handlebars->25->1574" ] }, { @@ -2278,8 +2278,8 @@ "ru": "Добавить устройство", "zh-chs": "添加設備", "xloc": [ - "default.handlebars->25->1549", - "default.handlebars->25->1666" + "default.handlebars->25->1551", + "default.handlebars->25->1670" ] }, { @@ -2314,8 +2314,8 @@ "zh-chs": "添加設備組", "xloc": [ "default.handlebars->25->1290", - "default.handlebars->25->1543", - "default.handlebars->25->1654", + "default.handlebars->25->1545", + "default.handlebars->25->1658", "default.handlebars->25->198" ] }, @@ -2432,7 +2432,7 @@ "ru": "Добавить участие", "zh-chs": "添加會員", "xloc": [ - "default.handlebars->25->1684" + "default.handlebars->25->1688" ] }, { @@ -2524,7 +2524,7 @@ "xloc": [ "default.handlebars->25->1190", "default.handlebars->25->1289", - "default.handlebars->25->1660", + "default.handlebars->25->1664", "default.handlebars->25->572" ] }, @@ -2585,7 +2585,7 @@ "zh-chs": "添加用戶", "xloc": [ "default.handlebars->25->1189", - "default.handlebars->25->1538" + "default.handlebars->25->1540" ] }, { @@ -2619,7 +2619,7 @@ "ru": "Добавить пользователей в группу", "zh-chs": "將用戶添加到用戶組", "xloc": [ - "default.handlebars->25->1571" + "default.handlebars->25->1573" ] }, { @@ -2826,7 +2826,7 @@ "ru": "Области администратора", "zh-chs": "管理領域", "xloc": [ - "default.handlebars->25->1602" + "default.handlebars->25->1606" ] }, { @@ -2989,7 +2989,7 @@ "ru": "Счетчик ошибок агента", "zh-chs": "座席錯誤計數器", "xloc": [ - "default.handlebars->25->1725" + "default.handlebars->25->1729" ] }, { @@ -3058,7 +3058,7 @@ "ru": "Сессии агентов", "zh-chs": "座席會議", "xloc": [ - "default.handlebars->25->1741" + "default.handlebars->25->1745" ] }, { @@ -3181,7 +3181,7 @@ "ru": "Агенты", "zh-chs": "代理商", "xloc": [ - "default.handlebars->25->1754" + "default.handlebars->25->1758" ] }, { @@ -3268,7 +3268,7 @@ "zh-chs": "允許用戶管理此設備組和該組中的設備。", "xloc": [ "default.handlebars->25->1256", - "default.handlebars->25->1568" + "default.handlebars->25->1570" ] }, { @@ -3372,7 +3372,7 @@ "zh-chs": "始終通知", "xloc": [ "default.handlebars->25->1170", - "default.handlebars->25->1611", + "default.handlebars->25->1615", "default.handlebars->25->518" ] }, @@ -3391,7 +3391,7 @@ "zh-chs": "總是提示", "xloc": [ "default.handlebars->25->1171", - "default.handlebars->25->1612", + "default.handlebars->25->1616", "default.handlebars->25->519" ] }, @@ -4001,7 +4001,7 @@ "ru": "Вы уверенны, что {0} плагин: {1}", "zh-chs": "您確定要{0}插件嗎:{1}", "xloc": [ - "default.handlebars->25->1794" + "default.handlebars->25->1798" ] }, { @@ -4097,7 +4097,7 @@ "ru": "Приложение аутентификации", "zh-chs": "身份驗證應用", "xloc": [ - "default.handlebars->25->1615" + "default.handlebars->25->1619" ] }, { @@ -4414,7 +4414,7 @@ "ru": "Резервные коды", "zh-chs": "備用碼", "xloc": [ - "default.handlebars->25->1617" + "default.handlebars->25->1621" ] }, { @@ -4431,7 +4431,7 @@ "ru": "Плохой ключ", "zh-chs": "錯誤的簽名", "xloc": [ - "default.handlebars->25->1732" + "default.handlebars->25->1736" ] }, { @@ -4448,7 +4448,7 @@ "ru": "Плохой веб-сертификат", "zh-chs": "錯誤的網絡證書", "xloc": [ - "default.handlebars->25->1731" + "default.handlebars->25->1735" ] }, { @@ -4586,7 +4586,7 @@ "ru": "Отправить сообщение", "zh-chs": "廣播", "xloc": [ - "default.handlebars->25->1536", + "default.handlebars->25->1538", "default.handlebars->container->column_l->p4->3->1->0->3->1" ] }, @@ -4711,7 +4711,7 @@ "ru": "CIRA Сервер", "zh-chs": "CIRA服務器", "xloc": [ - "default.handlebars->25->1782" + "default.handlebars->25->1786" ] }, { @@ -4728,7 +4728,7 @@ "ru": "CIRA Сервер команды", "zh-chs": "CIRA服務器命令", "xloc": [ - "default.handlebars->25->1783" + "default.handlebars->25->1787" ] }, { @@ -4762,7 +4762,7 @@ "ru": "Загрузка CPU", "zh-chs": "CPU負載", "xloc": [ - "default.handlebars->25->1746" + "default.handlebars->25->1750" ] }, { @@ -4779,7 +4779,7 @@ "ru": "Загрузка CPU за последние 15 минут", "zh-chs": "最近15分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1749" + "default.handlebars->25->1753" ] }, { @@ -4796,7 +4796,7 @@ "ru": "Загрузка CPU за последние 5 минут", "zh-chs": "最近5分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1748" + "default.handlebars->25->1752" ] }, { @@ -4813,7 +4813,7 @@ "ru": "Загрузка CPU за последнюю минуту", "zh-chs": "最後一分鐘的CPU負載", "xloc": [ - "default.handlebars->25->1747" + "default.handlebars->25->1751" ] }, { @@ -4868,7 +4868,7 @@ "ru": "Ошибка вызова", "zh-chs": "通話錯誤", "xloc": [ - "default.handlebars->25->1795" + "default.handlebars->25->1799" ] }, { @@ -5008,7 +5008,7 @@ "ru": "Смена email для {0}", "zh-chs": "更改{0}的電子郵件", "xloc": [ - "default.handlebars->25->1643" + "default.handlebars->25->1647" ] }, { @@ -5046,7 +5046,7 @@ "xloc": [ "default-mobile.handlebars->9->90", "default.handlebars->25->1115", - "default.handlebars->25->1632" + "default.handlebars->25->1636" ] }, { @@ -5063,7 +5063,7 @@ "ru": "Смена пароля для {0}", "zh-chs": "更改{0}的密碼", "xloc": [ - "default.handlebars->25->1650" + "default.handlebars->25->1654" ] }, { @@ -5133,7 +5133,7 @@ "ru": "Изменить пароль для этого пользователя", "zh-chs": "更改該用戶的密碼", "xloc": [ - "default.handlebars->25->1631" + "default.handlebars->25->1635" ] }, { @@ -5338,7 +5338,7 @@ "ru": "Проверка...", "zh-chs": "檢查...", "xloc": [ - "default.handlebars->25->1789", + "default.handlebars->25->1793", "default.handlebars->25->888" ] }, @@ -5554,7 +5554,7 @@ "nl": "Wis alle meldingen", "zh-chs": "全部清除", "xloc": [ - "default.handlebars->25->1719" + "default.handlebars->25->1723" ] }, { @@ -5604,7 +5604,7 @@ "ru": "Очистить это уведомление", "zh-chs": "清除此通知", "xloc": [ - "default.handlebars->25->1718" + "default.handlebars->25->1722" ] }, { @@ -5855,8 +5855,8 @@ "ru": "Общие группы устройств", "zh-chs": "通用設備組", "xloc": [ - "default.handlebars->25->1544", - "default.handlebars->25->1655" + "default.handlebars->25->1546", + "default.handlebars->25->1659" ] }, { @@ -5873,8 +5873,8 @@ "ru": "Общие устройства", "zh-chs": "通用設備", "xloc": [ - "default.handlebars->25->1550", - "default.handlebars->25->1667" + "default.handlebars->25->1552", + "default.handlebars->25->1671" ] }, { @@ -5914,8 +5914,8 @@ "default.handlebars->25->1235", "default.handlebars->25->1448", "default.handlebars->25->1517", - "default.handlebars->25->1564", - "default.handlebars->25->1653", + "default.handlebars->25->1566", + "default.handlebars->25->1657", "default.handlebars->25->408", "default.handlebars->25->647", "default.handlebars->25->656" @@ -6016,7 +6016,7 @@ "ru": "Подтвердить удаление пользователя {0}?", "zh-chs": "確認刪除用戶{0}?", "xloc": [ - "default.handlebars->25->1652" + "default.handlebars->25->1656" ] }, { @@ -6030,7 +6030,7 @@ "nl": "Bevestig lidmaatschap verwijderen van gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的成员身份?", "xloc": [ - "default.handlebars->25->1567" + "default.handlebars->25->1569" ] }, { @@ -6044,7 +6044,7 @@ "nl": "Bevestig lidmaatschap verwijdering van gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组 “{0}” 的成员身份?", "xloc": [ - "default.handlebars->25->1682" + "default.handlebars->25->1686" ] }, { @@ -6111,8 +6111,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaat \\\"{0}\\\"?", "zh-chs": "确认删除设备“ {0} ”的访问权限?", "xloc": [ - "default.handlebars->25->1557", - "default.handlebars->25->1673" + "default.handlebars->25->1559", + "default.handlebars->25->1677" ] }, { @@ -6126,8 +6126,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaatgroep \\\"{0}\\\"?", "zh-chs": "是否确认删除设备组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->25->1559", - "default.handlebars->25->1686" + "default.handlebars->25->1561", + "default.handlebars->25->1690" ] }, { @@ -6141,7 +6141,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的访问权限?", "xloc": [ - "default.handlebars->25->1675" + "default.handlebars->25->1679" ] }, { @@ -6155,7 +6155,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->25->1678" + "default.handlebars->25->1682" ] }, { @@ -6169,8 +6169,8 @@ "nl": "Verwijdering van toegangsrechten bevestigen?", "zh-chs": "确认删除访问权限?", "xloc": [ - "default.handlebars->25->1676", - "default.handlebars->25->1679" + "default.handlebars->25->1680", + "default.handlebars->25->1683" ] }, { @@ -6417,7 +6417,7 @@ "ru": "Подключено Intel® AMT", "zh-chs": "連接的英特爾®AMT", "xloc": [ - "default.handlebars->25->1737" + "default.handlebars->25->1741" ] }, { @@ -6434,7 +6434,7 @@ "ru": "Подключенные пользователи", "zh-chs": "關聯用戶", "xloc": [ - "default.handlebars->25->1742" + "default.handlebars->25->1746" ] }, { @@ -6511,7 +6511,7 @@ "ru": "Подключений ", "zh-chs": "連接數", "xloc": [ - "default.handlebars->25->1753" + "default.handlebars->25->1757" ] }, { @@ -6528,7 +6528,7 @@ "ru": "Ретранслятор подключения", "zh-chs": "連接繼電器", "xloc": [ - "default.handlebars->25->1781" + "default.handlebars->25->1785" ] }, { @@ -6655,7 +6655,7 @@ "ru": "Cookie-кодировщик", "zh-chs": "Cookie編碼器", "xloc": [ - "default.handlebars->25->1767" + "default.handlebars->25->1771" ] }, { @@ -6960,7 +6960,7 @@ "ru": "Основной сервер", "zh-chs": "核心服務器", "xloc": [ - "default.handlebars->25->1766" + "default.handlebars->25->1770" ] }, { @@ -7116,7 +7116,7 @@ "ru": "Создано", "zh-chs": "創建", "xloc": [ - "default.handlebars->25->1591" + "default.handlebars->25->1595" ] }, { @@ -7438,7 +7438,9 @@ "nl": "Standaard", "xloc": [ "default.handlebars->25->1474", - "default.handlebars->25->1520" + "default.handlebars->25->1520", + "default.handlebars->25->1531", + "default.handlebars->25->1586" ] }, { @@ -7589,7 +7591,7 @@ "ru": "Удалить пользователя", "zh-chs": "刪除用戶", "xloc": [ - "default.handlebars->25->1630" + "default.handlebars->25->1634" ] }, { @@ -7606,8 +7608,8 @@ "ru": "Удалить группу пользователей", "zh-chs": "刪除用戶組", "xloc": [ - "default.handlebars->25->1555", - "default.handlebars->25->1565" + "default.handlebars->25->1557", + "default.handlebars->25->1567" ] }, { @@ -7638,7 +7640,7 @@ "ru": "Удалить пользователя {0}", "zh-chs": "刪除用戶{0}", "xloc": [ - "default.handlebars->25->1651" + "default.handlebars->25->1655" ] }, { @@ -7742,7 +7744,7 @@ "ru": "Удалить группу пользователей {0}?", "zh-chs": "刪除用戶組{0}?", "xloc": [ - "default.handlebars->25->1563" + "default.handlebars->25->1565" ] }, { @@ -7880,9 +7882,9 @@ "default.handlebars->25->1155", "default.handlebars->25->1238", "default.handlebars->25->1523", - "default.handlebars->25->1530", - "default.handlebars->25->1531", - "default.handlebars->25->1561", + "default.handlebars->25->1533", + "default.handlebars->25->1534", + "default.handlebars->25->1563", "default.handlebars->25->477", "default.handlebars->25->478", "default.handlebars->25->688", @@ -7921,7 +7923,7 @@ "xloc": [ "default-mobile.handlebars->9->245", "default.handlebars->25->1243", - "default.handlebars->25->1696", + "default.handlebars->25->1700", "default.handlebars->25->444", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop", "default.handlebars->contextMenu->cxdesktop" @@ -7959,7 +7961,7 @@ "zh-chs": "桌面通知", "xloc": [ "default.handlebars->25->1165", - "default.handlebars->25->1606", + "default.handlebars->25->1610", "default.handlebars->25->513" ] }, @@ -7978,7 +7980,7 @@ "zh-chs": "桌面提示", "xloc": [ "default.handlebars->25->1164", - "default.handlebars->25->1605", + "default.handlebars->25->1609", "default.handlebars->25->512" ] }, @@ -7997,7 +7999,7 @@ "zh-chs": "桌面提示+工具欄", "xloc": [ "default.handlebars->25->1162", - "default.handlebars->25->1603", + "default.handlebars->25->1607", "default.handlebars->25->510" ] }, @@ -8030,7 +8032,7 @@ "zh-chs": "桌面工具欄", "xloc": [ "default.handlebars->25->1163", - "default.handlebars->25->1604", + "default.handlebars->25->1608", "default.handlebars->25->511" ] }, @@ -8103,7 +8105,7 @@ "zh-chs": "設備", "xloc": [ "default.handlebars->25->1265", - "default.handlebars->25->1670", + "default.handlebars->25->1674", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5" ] }, @@ -8142,10 +8144,10 @@ "default.handlebars->25->1260", "default.handlebars->25->1263", "default.handlebars->25->1264", - "default.handlebars->25->1547", - "default.handlebars->25->1553", - "default.handlebars->25->1658", - "default.handlebars->25->1705" + "default.handlebars->25->1549", + "default.handlebars->25->1555", + "default.handlebars->25->1662", + "default.handlebars->25->1709" ] }, { @@ -8183,9 +8185,9 @@ "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3", "default.handlebars->25->1414", "default.handlebars->25->1508", - "default.handlebars->25->1534", - "default.handlebars->25->1600", - "default.handlebars->25->1740", + "default.handlebars->25->1536", + "default.handlebars->25->1604", + "default.handlebars->25->1744", "default.handlebars->container->column_l->p2->p2info->7" ] }, @@ -8245,7 +8247,7 @@ "zh-chs": "設備名稱", "xloc": [ "default-mobile.handlebars->9->267", - "default.handlebars->25->1704", + "default.handlebars->25->1708", "default.handlebars->25->244", "default.handlebars->25->686", "player.handlebars->3->9" @@ -8626,7 +8628,7 @@ "zh-chs": "设备", "xloc": [ "default.handlebars->25->1509", - "default.handlebars->25->1535" + "default.handlebars->25->1537" ] }, { @@ -8817,7 +8819,9 @@ "nl": "Domein", "xloc": [ "default.handlebars->25->1475", - "default.handlebars->25->1521" + "default.handlebars->25->1521", + "default.handlebars->25->1530", + "default.handlebars->25->1585" ] }, { @@ -9265,7 +9269,7 @@ "nl": "Dubbele agent", "zh-chs": "代理重复", "xloc": [ - "default.handlebars->25->1736" + "default.handlebars->25->1740" ] }, { @@ -9330,8 +9334,8 @@ "ru": "Длительность", "zh-chs": "持續時間", "xloc": [ - "default.handlebars->25->1690", - "default.handlebars->25->1710", + "default.handlebars->25->1694", + "default.handlebars->25->1714", "player.handlebars->3->2" ] }, @@ -9816,7 +9820,7 @@ "ru": "Редактировать группу пользователей", "zh-chs": "編輯用戶組", "xloc": [ - "default.handlebars->25->1562" + "default.handlebars->25->1564" ] }, { @@ -9866,10 +9870,10 @@ "xloc": [ "default-mobile.handlebars->9->78", "default.handlebars->25->1477", - "default.handlebars->25->1585", - "default.handlebars->25->1586", - "default.handlebars->25->1625", - "default.handlebars->25->1639", + "default.handlebars->25->1589", + "default.handlebars->25->1590", + "default.handlebars->25->1629", + "default.handlebars->25->1643", "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", @@ -10003,7 +10007,7 @@ "zh-chs": "電子郵件已驗證", "xloc": [ "default.handlebars->25->1434", - "default.handlebars->25->1581" + "default.handlebars->25->1583" ] }, { @@ -10037,7 +10041,7 @@ "ru": "Email не подтвержден", "zh-chs": "電子郵件未驗證", "xloc": [ - "default.handlebars->25->1582" + "default.handlebars->25->1584" ] }, { @@ -10089,7 +10093,7 @@ "nl": "Email/SMS verkeer", "zh-chs": "电子邮件/短信流量", "xloc": [ - "default.handlebars->25->1775" + "default.handlebars->25->1779" ] }, { @@ -10187,7 +10191,7 @@ "en": "Enabled", "nl": "Ingeschakeld", "xloc": [ - "default.handlebars->25->1712" + "default.handlebars->25->1716" ] }, { @@ -10211,7 +10215,7 @@ "en": "End Time", "nl": "Eindtijd", "xloc": [ - "default.handlebars->25->1709" + "default.handlebars->25->1713" ] }, { @@ -10774,7 +10778,7 @@ "ru": "Внешний", "zh-chs": "外部", "xloc": [ - "default.handlebars->25->1760" + "default.handlebars->25->1764" ] }, { @@ -10980,7 +10984,7 @@ "default-mobile.handlebars->9->165", "default-mobile.handlebars->9->246", "default.handlebars->25->1250", - "default.handlebars->25->1697", + "default.handlebars->25->1701", "default.handlebars->25->218", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles", "default.handlebars->contextMenu->cxfiles" @@ -11018,7 +11022,7 @@ "zh-chs": "文件通知", "xloc": [ "default.handlebars->25->1169", - "default.handlebars->25->1610", + "default.handlebars->25->1614", "default.handlebars->25->517" ] }, @@ -11037,7 +11041,7 @@ "zh-chs": "文件提示", "xloc": [ "default.handlebars->25->1168", - "default.handlebars->25->1609", + "default.handlebars->25->1613", "default.handlebars->25->516" ] }, @@ -11199,7 +11203,7 @@ "zh-chs": "下次登錄時強制重置密碼。", "xloc": [ "default.handlebars->25->1482", - "default.handlebars->25->1648" + "default.handlebars->25->1652" ] }, { @@ -11285,8 +11289,8 @@ "ru": "Свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->25->1721", - "default.handlebars->25->1723" + "default.handlebars->25->1725", + "default.handlebars->25->1727" ] }, { @@ -11580,7 +11584,7 @@ "ru": "Администратор с полным доступом", "zh-chs": "正式管理員", "xloc": [ - "default.handlebars->25->1576" + "default.handlebars->25->1578" ] }, { @@ -12039,7 +12043,7 @@ "ru": "Члены группы", "zh-chs": "小組成員", "xloc": [ - "default.handlebars->25->1539" + "default.handlebars->25->1541" ] }, { @@ -12211,7 +12215,7 @@ "ru": "Всего кучи", "zh-chs": "堆總數", "xloc": [ - "default.handlebars->25->1762" + "default.handlebars->25->1766" ] }, { @@ -12228,7 +12232,7 @@ "ru": "Куча используется", "zh-chs": "堆使用", "xloc": [ - "default.handlebars->25->1761" + "default.handlebars->25->1765" ] }, { @@ -13019,8 +13023,8 @@ "xloc": [ "default.handlebars->25->1352", "default.handlebars->25->1360", - "default.handlebars->25->1758", - "default.handlebars->25->1780" + "default.handlebars->25->1762", + "default.handlebars->25->1784" ] }, { @@ -13061,14 +13065,14 @@ "en": "Intel AMT Redirection", "nl": "Intel AMT omleiding", "xloc": [ - "default.handlebars->25->1699" + "default.handlebars->25->1703" ] }, { "en": "Intel AMT WSMAN", "nl": "Intel AMT WSMAN", "xloc": [ - "default.handlebars->25->1698" + "default.handlebars->25->1702" ] }, { @@ -13753,7 +13757,7 @@ "ru": "Некорректный тип группы устройств", "zh-chs": "無效的設備組類型", "xloc": [ - "default.handlebars->25->1735" + "default.handlebars->25->1739" ] }, { @@ -13770,7 +13774,7 @@ "ru": "Некорректный JSON", "zh-chs": "無效的JSON", "xloc": [ - "default.handlebars->25->1729" + "default.handlebars->25->1733" ] }, { @@ -13822,7 +13826,7 @@ "ru": "Некорректная сигнатура PKCS", "zh-chs": "無效的PKCS簽名", "xloc": [ - "default.handlebars->25->1727" + "default.handlebars->25->1731" ] }, { @@ -13839,7 +13843,7 @@ "ru": "Некорректная сигнатура RSA", "zh-chs": "無效的RSA密碼", "xloc": [ - "default.handlebars->25->1728" + "default.handlebars->25->1732" ] }, { @@ -14666,7 +14670,7 @@ "ru": "Последний вход в систему", "zh-chs": "上次登錄", "xloc": [ - "default.handlebars->25->1592" + "default.handlebars->25->1596" ] }, { @@ -14729,7 +14733,7 @@ "ru": "Последнее изменение: {0}", "zh-chs": "上次更改:{0}", "xloc": [ - "default.handlebars->25->1596" + "default.handlebars->25->1600" ] }, { @@ -14896,7 +14900,7 @@ "nl": "Leeg laten voor geen.", "zh-chs": "一无所有。", "xloc": [ - "default.handlebars->25->1636" + "default.handlebars->25->1640" ] }, { @@ -14935,7 +14939,7 @@ "ru": "Меньше", "zh-chs": "減", "xloc": [ - "default.handlebars->25->1797" + "default.handlebars->25->1801" ] }, { @@ -15531,7 +15535,7 @@ "ru": "Заблокированная учетная запись", "zh-chs": "賬戶鎖定", "xloc": [ - "default.handlebars->25->1573" + "default.handlebars->25->1575" ] }, { @@ -16044,7 +16048,7 @@ "ru": "Сообщения главного сервера", "zh-chs": "主服務器消息", "xloc": [ - "default.handlebars->25->1769" + "default.handlebars->25->1773" ] }, { @@ -16470,7 +16474,7 @@ "ru": "Достигнуто максимальное число сессий", "zh-chs": "達到的會話數上限", "xloc": [ - "default.handlebars->25->1733" + "default.handlebars->25->1737" ] }, { @@ -16524,7 +16528,7 @@ "ru": "Мегабайт", "zh-chs": "兆字節", "xloc": [ - "default.handlebars->25->1759" + "default.handlebars->25->1763" ] }, { @@ -16542,7 +16546,7 @@ "zh-chs": "記憶", "xloc": [ "default-mobile.handlebars->9->366", - "default.handlebars->25->1750", + "default.handlebars->25->1754", "default.handlebars->25->842", "default.handlebars->container->column_l->p40->3->1->p40type->3" ] @@ -16680,7 +16684,7 @@ "ru": "Трафик MeshAgent", "zh-chs": "MeshAgent流量", "xloc": [ - "default.handlebars->25->1771" + "default.handlebars->25->1775" ] }, { @@ -16697,7 +16701,7 @@ "ru": "Обновление MeshAgent", "zh-chs": "MeshAgent更新", "xloc": [ - "default.handlebars->25->1772" + "default.handlebars->25->1776" ] }, { @@ -16800,7 +16804,7 @@ "ru": "Соединения сервера MeshCentral", "zh-chs": "MeshCentral服務器對等", "xloc": [ - "default.handlebars->25->1770" + "default.handlebars->25->1774" ] }, { @@ -17064,7 +17068,7 @@ "ru": "Диспетчер сообщения", "zh-chs": "郵件調度程序", "xloc": [ - "default.handlebars->25->1768" + "default.handlebars->25->1772" ] }, { @@ -17213,7 +17217,7 @@ "ru": "Еще", "zh-chs": "更多", "xloc": [ - "default.handlebars->25->1796" + "default.handlebars->25->1800" ] }, { @@ -17289,7 +17293,7 @@ "en": "Multiplexor", "nl": "Multiplexor", "xloc": [ - "default.handlebars->25->1711" + "default.handlebars->25->1715" ] }, { @@ -17564,8 +17568,8 @@ "default.handlebars->25->1506", "default.handlebars->25->1522", "default.handlebars->25->1529", - "default.handlebars->25->1560", - "default.handlebars->25->1579", + "default.handlebars->25->1562", + "default.handlebars->25->1581", "default.handlebars->25->467", "default.handlebars->25->717", "default.handlebars->25->77", @@ -17961,7 +17965,7 @@ "zh-chs": "找不到活動", "xloc": [ "default.handlebars->25->1403", - "default.handlebars->25->1687", + "default.handlebars->25->1691", "default.handlebars->25->788" ] }, @@ -18105,7 +18109,7 @@ "ru": "Нет членов", "zh-chs": "沒有會員", "xloc": [ - "default.handlebars->25->1542" + "default.handlebars->25->1544" ] }, { @@ -18255,8 +18259,8 @@ "ru": "Нет общих групп устройств", "zh-chs": "沒有共同的設備組", "xloc": [ - "default.handlebars->25->1548", - "default.handlebars->25->1659" + "default.handlebars->25->1550", + "default.handlebars->25->1663" ] }, { @@ -18352,8 +18356,8 @@ "ru": "Нет общих устройств", "zh-chs": "沒有共同的設備", "xloc": [ - "default.handlebars->25->1554", - "default.handlebars->25->1671" + "default.handlebars->25->1556", + "default.handlebars->25->1675" ] }, { @@ -18543,7 +18547,7 @@ "ru": "Нет серверных прав", "zh-chs": "沒有服務器權限", "xloc": [ - "default.handlebars->25->1574" + "default.handlebars->25->1576" ] }, { @@ -18560,7 +18564,7 @@ "ru": "Нет членства в группах пользователей", "zh-chs": "沒有用戶組成員身份", "xloc": [ - "default.handlebars->25->1665" + "default.handlebars->25->1669" ] }, { @@ -18665,10 +18669,10 @@ "default.handlebars->25->1526", "default.handlebars->25->1528", "default.handlebars->25->158", - "default.handlebars->25->1588", - "default.handlebars->25->1597", + "default.handlebars->25->1592", "default.handlebars->25->1601", - "default.handlebars->25->1613", + "default.handlebars->25->1605", + "default.handlebars->25->1617", "default.handlebars->25->174", "default.handlebars->25->175", "default.handlebars->25->464", @@ -18828,7 +18832,7 @@ "en": "Not on server", "nl": "Niet op de server", "xloc": [ - "default.handlebars->25->1703" + "default.handlebars->25->1707" ] }, { @@ -18845,7 +18849,7 @@ "ru": "Не задано", "zh-chs": "沒有設置", "xloc": [ - "default.handlebars->25->1580" + "default.handlebars->25->1582" ] }, { @@ -18862,7 +18866,7 @@ "ru": "не подтверждено", "zh-chs": "未經審核的", "xloc": [ - "default.handlebars->25->1641" + "default.handlebars->25->1645" ] }, { @@ -18880,7 +18884,7 @@ "zh-chs": "筆記", "xloc": [ "default.handlebars->25->1187", - "default.handlebars->25->1621", + "default.handlebars->25->1625", "default.handlebars->25->536", "default.handlebars->25->590", "default.handlebars->25->609", @@ -18988,7 +18992,7 @@ "ru": "Уведомить", "zh-chs": "通知", "xloc": [ - "default.handlebars->25->1627" + "default.handlebars->25->1631" ] }, { @@ -19102,7 +19106,7 @@ "ru": "Произошло в {0}", "zh-chs": "發生在{0}", "xloc": [ - "default.handlebars->25->1717" + "default.handlebars->25->1721" ] }, { @@ -19586,7 +19590,7 @@ "ru": "Частичные права", "zh-chs": "部分權利", "xloc": [ - "default.handlebars->25->1577" + "default.handlebars->25->1579" ] }, { @@ -19623,10 +19627,10 @@ "default-mobile.handlebars->9->258", "default.handlebars->25->1478", "default.handlebars->25->1479", - "default.handlebars->25->1593", - "default.handlebars->25->1595", - "default.handlebars->25->1644", - "default.handlebars->25->1645", + "default.handlebars->25->1597", + "default.handlebars->25->1599", + "default.handlebars->25->1648", + "default.handlebars->25->1649", "default.handlebars->25->249", "default.handlebars->25->278", "default.handlebars->25->635" @@ -19735,7 +19739,7 @@ "ru": "Подсказка пароля", "zh-chs": "密碼提示", "xloc": [ - "default.handlebars->25->1646" + "default.handlebars->25->1650" ] }, { @@ -20057,7 +20061,7 @@ "default-mobile.handlebars->9->65", "default-mobile.handlebars->9->67", "default.handlebars->25->143", - "default.handlebars->25->1638", + "default.handlebars->25->1642", "default.handlebars->25->868", "default.handlebars->25->871" ] @@ -20072,7 +20076,7 @@ "nl": "Telefoonnummer", "zh-chs": "电话号码", "xloc": [ - "default.handlebars->25->1587" + "default.handlebars->25->1591" ] }, { @@ -20086,7 +20090,7 @@ "zh-chs": "电话号码:", "xloc": [ "default-mobile.handlebars->9->66", - "default.handlebars->25->1637", + "default.handlebars->25->1641", "default.handlebars->25->870" ] }, @@ -20223,7 +20227,7 @@ "zh-chs": "插件動作", "xloc": [ "default.handlebars->25->169", - "default.handlebars->25->1793" + "default.handlebars->25->1797" ] }, { @@ -20541,7 +20545,7 @@ "en": "Present on server", "nl": "Aanwezig op de server", "xloc": [ - "default.handlebars->25->1702" + "default.handlebars->25->1706" ] }, { @@ -20655,7 +20659,7 @@ "ru": "Протокол", "zh-chs": "協議", "xloc": [ - "default.handlebars->25->1700", + "default.handlebars->25->1704", "player.handlebars->3->15" ] }, @@ -20963,7 +20967,7 @@ "ru": "RSS", "zh-chs": "的RSS", "xloc": [ - "default.handlebars->25->1763" + "default.handlebars->25->1767" ] }, { @@ -21058,7 +21062,7 @@ "en": "Recording Details", "nl": "Opname details", "xloc": [ - "default.handlebars->25->1714" + "default.handlebars->25->1718" ] }, { @@ -21182,7 +21186,7 @@ "ru": "Число ретрансляций", "zh-chs": "中繼計數", "xloc": [ - "default.handlebars->25->1745" + "default.handlebars->25->1749" ] }, { @@ -21199,7 +21203,7 @@ "ru": "Ошибки ретранслятора", "zh-chs": "中繼錯誤", "xloc": [ - "default.handlebars->25->1738" + "default.handlebars->25->1742" ] }, { @@ -21216,8 +21220,8 @@ "ru": "Сессии ретранслятора", "zh-chs": "接力會議", "xloc": [ - "default.handlebars->25->1744", - "default.handlebars->25->1757" + "default.handlebars->25->1748", + "default.handlebars->25->1761" ] }, { @@ -21537,8 +21541,8 @@ "nl": "Apparaatgroepmachtigingen verwijderen", "zh-chs": "删除设备组权限", "xloc": [ - "default.handlebars->25->1558", - "default.handlebars->25->1685" + "default.handlebars->25->1560", + "default.handlebars->25->1689" ] }, { @@ -21552,8 +21556,8 @@ "nl": "Apparaatmachtigingen verwijderen", "zh-chs": "删除设备权限", "xloc": [ - "default.handlebars->25->1556", - "default.handlebars->25->1672" + "default.handlebars->25->1558", + "default.handlebars->25->1676" ] }, { @@ -21581,7 +21585,7 @@ "nl": "Lidmaatschap van gebruikersgroep verwijderen", "zh-chs": "删除用户组成员身份", "xloc": [ - "default.handlebars->25->1681" + "default.handlebars->25->1685" ] }, { @@ -21596,7 +21600,7 @@ "zh-chs": "删除用户组权限", "xloc": [ "default.handlebars->25->1328", - "default.handlebars->25->1677" + "default.handlebars->25->1681" ] }, { @@ -21610,7 +21614,7 @@ "nl": "Gebruikerslidmaatschap verwijderen", "zh-chs": "删除用户成员资格", "xloc": [ - "default.handlebars->25->1566" + "default.handlebars->25->1568" ] }, { @@ -21625,7 +21629,7 @@ "zh-chs": "删除用户权限", "xloc": [ "default.handlebars->25->1326", - "default.handlebars->25->1674" + "default.handlebars->25->1678" ] }, { @@ -21642,7 +21646,7 @@ "ru": "Удалить все двухфакторные аутентификации.", "zh-chs": "刪除所有第二因素驗證。", "xloc": [ - "default.handlebars->25->1649" + "default.handlebars->25->1653" ] }, { @@ -21740,7 +21744,7 @@ "ru": "Удалить этого пользователя", "zh-chs": "删除该用户", "xloc": [ - "default.handlebars->25->1629" + "default.handlebars->25->1633" ] }, { @@ -21757,7 +21761,7 @@ "ru": "Удалить членство пользователя в группе", "zh-chs": "刪除用戶組成員身份", "xloc": [ - "default.handlebars->25->1663" + "default.handlebars->25->1667" ] }, { @@ -21771,7 +21775,7 @@ "nl": "Gebruikersrechten voor dit apparaat verwijderen", "zh-chs": "删除此设备的用户组权限", "xloc": [ - "default.handlebars->25->1552" + "default.handlebars->25->1554" ] }, { @@ -21788,7 +21792,7 @@ "ru": "Удалить права группы пользователей для этой группы устройств", "zh-chs": "刪除該設備組的用戶組權限", "xloc": [ - "default.handlebars->25->1546", + "default.handlebars->25->1548", "default.handlebars->25->574" ] }, @@ -21807,9 +21811,9 @@ "zh-chs": "刪除此設備組的用戶權限", "xloc": [ "default.handlebars->25->1204", - "default.handlebars->25->1540", - "default.handlebars->25->1657", - "default.handlebars->25->1669", + "default.handlebars->25->1542", + "default.handlebars->25->1661", + "default.handlebars->25->1673", "default.handlebars->25->575" ] }, @@ -21872,7 +21876,7 @@ "xloc": [ "default-mobile.handlebars->9->89", "default.handlebars->25->1486", - "default.handlebars->25->1647" + "default.handlebars->25->1651" ] }, { @@ -22114,7 +22118,7 @@ "ru": "Ограничения", "zh-chs": "限制條件", "xloc": [ - "default.handlebars->25->1578" + "default.handlebars->25->1580" ] }, { @@ -22337,8 +22341,8 @@ "nl": "SMS", "zh-chs": "短信", "xloc": [ - "default.handlebars->25->1618", - "default.handlebars->25->1623", + "default.handlebars->25->1622", + "default.handlebars->25->1627", "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" ] @@ -22353,7 +22357,7 @@ "nl": "SMS geschikt telefoonnummer voor deze gebruiker.", "zh-chs": "此用户的短信功能电话号码。", "xloc": [ - "default.handlebars->25->1635" + "default.handlebars->25->1639" ] }, { @@ -22757,7 +22761,7 @@ "xloc": [ "default-mobile.handlebars->9->259", "default-mobile.handlebars->9->345", - "default.handlebars->25->1619", + "default.handlebars->25->1623", "default.handlebars->25->250", "default.handlebars->25->636", "default.handlebars->25->821" @@ -22777,7 +22781,7 @@ "ru": "Ключ безопасности", "zh-chs": "安全密鑰", "xloc": [ - "default.handlebars->25->1616" + "default.handlebars->25->1620" ] }, { @@ -23068,14 +23072,14 @@ "nl": "Stuur een SMS bericht naar deze gebruiker", "zh-chs": "发送短信给该用户", "xloc": [ - "default.handlebars->25->1624" + "default.handlebars->25->1628" ] }, { "en": "Send a email message to this user", "nl": "Stuur een e-mailbericht naar deze gebruiker", "xloc": [ - "default.handlebars->25->1626" + "default.handlebars->25->1630" ] }, { @@ -23092,7 +23096,7 @@ "ru": "Отправить уведомление всем пользователям этой группы.", "zh-chs": "向該組中的所有用戶發送通知。", "xloc": [ - "default.handlebars->25->1537" + "default.handlebars->25->1539" ] }, { @@ -23225,7 +23229,7 @@ "ru": "Отправить уведомление пользователю", "zh-chs": "發送用戶通知", "xloc": [ - "default.handlebars->25->1628" + "default.handlebars->25->1632" ] }, { @@ -23294,7 +23298,7 @@ "ru": "Сертификат сервера", "zh-chs": "服務器證書", "xloc": [ - "default.handlebars->25->1773" + "default.handlebars->25->1777" ] }, { @@ -23311,7 +23315,7 @@ "ru": "База данных сервера", "zh-chs": "服務器數據庫", "xloc": [ - "default.handlebars->25->1774" + "default.handlebars->25->1778" ] }, { @@ -23369,7 +23373,7 @@ "ru": "Квота сервера", "zh-chs": "服務器配額", "xloc": [ - "default.handlebars->25->1590" + "default.handlebars->25->1594" ] }, { @@ -23403,7 +23407,7 @@ "ru": "Права", "zh-chs": "服務器權限", "xloc": [ - "default.handlebars->25->1589" + "default.handlebars->25->1593" ] }, { @@ -23420,7 +23424,7 @@ "ru": "Состояние сервера", "zh-chs": "服務器狀態", "xloc": [ - "default.handlebars->25->1724" + "default.handlebars->25->1728" ] }, { @@ -23454,7 +23458,7 @@ "ru": "Трассировка сервера", "zh-chs": "服務器跟踪", "xloc": [ - "default.handlebars->25->1784" + "default.handlebars->25->1788" ] }, { @@ -23593,7 +23597,7 @@ "ru": "ServerStats.csv", "zh-chs": "ServerStats.csv", "xloc": [ - "default.handlebars->25->1765" + "default.handlebars->25->1769" ] }, { @@ -23634,7 +23638,7 @@ "en": "Session", "nl": "Sessie", "xloc": [ - "default.handlebars->25->1688" + "default.handlebars->25->1692" ] }, { @@ -24173,8 +24177,8 @@ "ru": "Размер", "zh-chs": "尺寸", "xloc": [ - "default.handlebars->25->1691", - "default.handlebars->25->1706", + "default.handlebars->25->1695", + "default.handlebars->25->1710", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize" ] }, @@ -24985,8 +24989,8 @@ "en": "Start Time", "nl": "Start tijd", "xloc": [ - "default.handlebars->25->1689", - "default.handlebars->25->1708", + "default.handlebars->25->1693", + "default.handlebars->25->1712", "default.handlebars->25->700" ] }, @@ -25039,8 +25043,8 @@ "ru": "Статус", "zh-chs": "狀態", "xloc": [ - "default.handlebars->25->1640", - "default.handlebars->25->1701", + "default.handlebars->25->1644", + "default.handlebars->25->1705", "default.handlebars->container->column_l->p42->p42tbl->1->0->7" ] }, @@ -25592,7 +25596,7 @@ "xloc": [ "default-mobile.handlebars->9->162", "default.handlebars->25->1247", - "default.handlebars->25->1695", + "default.handlebars->25->1699", "default.handlebars->25->215", "default.handlebars->25->445", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal", @@ -25631,7 +25635,7 @@ "zh-chs": "終端通知", "xloc": [ "default.handlebars->25->1167", - "default.handlebars->25->1608", + "default.handlebars->25->1612", "default.handlebars->25->515" ] }, @@ -25650,7 +25654,7 @@ "zh-chs": "終端提示", "xloc": [ "default.handlebars->25->1166", - "default.handlebars->25->1607", + "default.handlebars->25->1611", "default.handlebars->25->514" ] }, @@ -25794,7 +25798,7 @@ "ru": "На данный момент уведомлений нет", "zh-chs": "目前沒有任何通知", "xloc": [ - "default.handlebars->25->1716" + "default.handlebars->25->1720" ] }, { @@ -27027,9 +27031,9 @@ "default.handlebars->25->1144", "default.handlebars->25->1145", "default.handlebars->25->13", - "default.handlebars->25->1680", - "default.handlebars->25->1693", - "default.handlebars->25->1694", + "default.handlebars->25->1684", + "default.handlebars->25->1697", + "default.handlebars->25->1698", "default.handlebars->25->392", "default.handlebars->25->41", "default.handlebars->25->42", @@ -27074,7 +27078,7 @@ "ru": "Неизвестное действие", "zh-chs": "未知動作", "xloc": [ - "default.handlebars->25->1730" + "default.handlebars->25->1734" ] }, { @@ -27091,8 +27095,8 @@ "ru": "Неизвестное устройство", "zh-chs": "未知設備", "xloc": [ - "default.handlebars->25->1551", - "default.handlebars->25->1668" + "default.handlebars->25->1553", + "default.handlebars->25->1672" ] }, { @@ -27109,9 +27113,9 @@ "ru": "Неизвестная группа устройств", "zh-chs": "未知設備組", "xloc": [ - "default.handlebars->25->1545", - "default.handlebars->25->1656", - "default.handlebars->25->1734" + "default.handlebars->25->1547", + "default.handlebars->25->1660", + "default.handlebars->25->1738" ] }, { @@ -27128,7 +27132,7 @@ "ru": "Неизвестная группа", "zh-chs": "未知群組", "xloc": [ - "default.handlebars->25->1726" + "default.handlebars->25->1730" ] }, { @@ -27163,7 +27167,7 @@ "ru": "Неизвестная группа пользователей", "zh-chs": "未知用戶組", "xloc": [ - "default.handlebars->25->1662" + "default.handlebars->25->1666" ] }, { @@ -27252,7 +27256,7 @@ "ru": "Актуально", "zh-chs": "最新", "xloc": [ - "default.handlebars->25->1791" + "default.handlebars->25->1795" ] }, { @@ -27501,8 +27505,8 @@ "ru": "Использовано", "zh-chs": "用過的", "xloc": [ - "default.handlebars->25->1720", - "default.handlebars->25->1722" + "default.handlebars->25->1724", + "default.handlebars->25->1726" ] }, { @@ -27521,8 +27525,8 @@ "xloc": [ "default.handlebars->25->1205", "default.handlebars->25->1428", - "default.handlebars->25->1541", - "default.handlebars->25->1713", + "default.handlebars->25->1543", + "default.handlebars->25->1717", "default.handlebars->25->193", "default.handlebars->25->577" ] @@ -27578,7 +27582,7 @@ "ru": "Учетные записи пользователей", "zh-chs": "用戶帳號", "xloc": [ - "default.handlebars->25->1739" + "default.handlebars->25->1743" ] }, { @@ -27615,7 +27619,7 @@ "zh-chs": "用戶同意", "xloc": [ "default.handlebars->25->1173", - "default.handlebars->25->1614", + "default.handlebars->25->1618", "default.handlebars->25->521" ] }, @@ -27636,8 +27640,8 @@ "default.handlebars->25->1261", "default.handlebars->25->1262", "default.handlebars->25->1519", - "default.handlebars->25->1664", - "default.handlebars->25->1683", + "default.handlebars->25->1668", + "default.handlebars->25->1687", "default.handlebars->25->576" ] }, @@ -27672,7 +27676,7 @@ "ru": "Членство в группах пользователей", "zh-chs": "用戶組成員資格", "xloc": [ - "default.handlebars->25->1661" + "default.handlebars->25->1665" ] }, { @@ -27697,8 +27701,8 @@ "zh-chs": "用戶標識", "xloc": [ "default.handlebars->25->1322", - "default.handlebars->25->1583", - "default.handlebars->25->1584" + "default.handlebars->25->1587", + "default.handlebars->25->1588" ] }, { @@ -27706,7 +27710,7 @@ "nl": "Gebruikers-ID's", "xloc": [ "default.handlebars->25->1259", - "default.handlebars->25->1570" + "default.handlebars->25->1572" ] }, { @@ -27803,7 +27807,7 @@ "ru": "Сессии пользователя", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->25->1756" + "default.handlebars->25->1760" ] }, { @@ -27998,8 +28002,8 @@ "zh-chs": "用戶數", "xloc": [ "default.handlebars->25->1507", - "default.handlebars->25->1533", - "default.handlebars->25->1755", + "default.handlebars->25->1535", + "default.handlebars->25->1759", "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral" ] }, @@ -28017,7 +28021,7 @@ "ru": "Сессии пользователей", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->25->1743" + "default.handlebars->25->1747" ] }, { @@ -28102,7 +28106,7 @@ "ru": "Проверенный", "zh-chs": "已驗證", "xloc": [ - "default.handlebars->25->1642" + "default.handlebars->25->1646" ] }, { @@ -28206,7 +28210,7 @@ "ru": "Версия несовместима, пожалуйста, сначала обновите установку MeshCentral", "zh-chs": "版本不兼容,请先升级您的MeshCentral安装", "xloc": [ - "default.handlebars->25->1787" + "default.handlebars->25->1791" ] }, { @@ -28274,8 +28278,8 @@ "ru": "Просмотр журнала изменений", "zh-chs": "查看变更日志", "xloc": [ - "default.handlebars->25->1790", - "default.handlebars->25->1792" + "default.handlebars->25->1794", + "default.handlebars->25->1796" ] }, { @@ -28326,7 +28330,7 @@ "ru": "Посмотреть примечания об этом пользователе", "zh-chs": "查看有關此用戶的註釋", "xloc": [ - "default.handlebars->25->1622" + "default.handlebars->25->1626" ] }, { @@ -28533,8 +28537,8 @@ "ru": "Веб-сервер", "zh-chs": "網絡服務器", "xloc": [ - "default.handlebars->25->1776", - "default.handlebars->25->1777" + "default.handlebars->25->1780", + "default.handlebars->25->1781" ] }, { @@ -28551,7 +28555,7 @@ "ru": "Запросы веб-сервера", "zh-chs": "Web服務器請求", "xloc": [ - "default.handlebars->25->1778" + "default.handlebars->25->1782" ] }, { @@ -28568,7 +28572,7 @@ "ru": "Ретранслятор Web Socket", "zh-chs": "Web套接字中繼", "xloc": [ - "default.handlebars->25->1779" + "default.handlebars->25->1783" ] }, { @@ -28673,7 +28677,7 @@ "ru": "Будет изменено при следующем входе в систему.", "zh-chs": "下次登錄時將更改。", "xloc": [ - "default.handlebars->25->1594" + "default.handlebars->25->1598" ] }, { @@ -29626,7 +29630,7 @@ "ru": "\\\\'", "zh-chs": "\\\\'", "xloc": [ - "default.handlebars->25->1788" + "default.handlebars->25->1792" ] }, { @@ -29901,7 +29905,7 @@ "ru": "свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->25->1751" + "default.handlebars->25->1755" ] }, { @@ -30271,7 +30275,7 @@ "ru": "servertrace.csv", "zh-chs": "servertrace.csv", "xloc": [ - "default.handlebars->25->1786" + "default.handlebars->25->1790" ] }, { @@ -30328,7 +30332,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->1764" + "default.handlebars->25->1768" ] }, { @@ -30345,7 +30349,7 @@ "ru": "time, source, message", "zh-chs": "時間,來源,訊息", "xloc": [ - "default.handlebars->25->1785" + "default.handlebars->25->1789" ] }, { @@ -30376,7 +30380,7 @@ "ru": "всего", "zh-chs": "總", "xloc": [ - "default.handlebars->25->1752" + "default.handlebars->25->1756" ] }, { @@ -30535,7 +30539,7 @@ "zh-chs": "{0} Kb", "xloc": [ "default.handlebars->25->1375", - "default.handlebars->25->1692" + "default.handlebars->25->1696" ] }, { @@ -30589,7 +30593,7 @@ "ru": "{0} активных сессий", "zh-chs": "{0}個活動會話", "xloc": [ - "default.handlebars->25->1634" + "default.handlebars->25->1638" ] }, { @@ -30625,7 +30629,7 @@ "xloc": [ "default-mobile.handlebars->9->119", "default.handlebars->25->1385", - "default.handlebars->25->1707" + "default.handlebars->25->1711" ] }, { @@ -30683,7 +30687,7 @@ "ru": "{0} групп", "zh-chs": "{0}個群組", "xloc": [ - "default.handlebars->25->1599" + "default.handlebars->25->1603" ] }, { diff --git a/views/default.handlebars b/views/default.handlebars index 9329f29d..4ed4621c 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -2330,7 +2330,7 @@ case 'accountcreate': case 'accountchange': { // An account was created or changed - if (userinfo.name == message.event.account.name) { + if (userinfo._id == message.event.account._id) { var newsiteadmin = message.event.account.siteadmin?message.event.account.siteadmin:0; var oldsiteadmin = userinfo.siteadmin?userinfo.siteadmin:0; if ((message.event.account.quota != userinfo.quota) || (((userinfo.siteadmin & 8) == 0) && ((message.event.account.siteadmin & 8) != 0))) { meshserver.send({ action: 'files' }); } @@ -8923,7 +8923,6 @@ } function p20showAddMeshUserDialog(userid, selected) { - console.log('p20showAddMeshUserDialog', userid, selected); if (xxdialogMode) return false; var x = ''; if ((userid == null) || (userid == 5)) { @@ -10664,13 +10663,16 @@ var x = '
'; if ((args.hide & 8) != 0) { x += '
' + addDeviceAttribute("Name", gname); } // If title bar is hidden, display the user group name here + if (serverinfo.crossDomain != null) { + var d = group._id.split('/')[1]; + x += addDeviceAttribute("Domain", (d != '')?EscapeHtml(d):('' + "Default" + '')); + x += addDeviceAttribute("Group Identifier", EscapeHtml(group._id)); + } if ((userinfo.siteadmin & 256) != 0) { x += addDeviceAttribute("Description", '' + desc + ' '); } else { x += addDeviceAttribute("Description", desc); } - - if (serverinfo.crossDomain != null) { x += addDeviceAttribute("Group Identifier", group._id); } x += addDeviceAttribute("Users", usercount); x += addDeviceAttribute("Device Groups", meshcount); x += addDeviceAttribute("Devices", devicecount); @@ -10939,7 +10941,7 @@ if (user == null) { setDialogMode(0); go(4); return; } QH('p30userName', user.name); QH('p31userName', user.name); - var self = (user.name == userinfo.name), activeSessions = 0; + var self = (user._id == userinfo._id), activeSessions = 0; if (wssessions != null && wssessions[user._id]) { activeSessions = wssessions[user._id]; } // Change user grayscale @@ -10971,6 +10973,8 @@ if (serverinfo.emailcheck) { everify = ((user.emailVerified == true) ? ' ' : ' '); } if (serverinfo.crossDomain) { + var d = user._id.split('/')[1]; + x += addDeviceAttribute("Domain", ((d != '')?EscapeHtml(d):('' + "Default" + ''))); 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])); }