From b9d49182f22fa7c36cb76d966c08e7fc3f836cf0 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 5 Aug 2020 20:15:34 -0700 Subject: [PATCH] Added Account Settings Lock Feature. --- meshuser.js | 124 ++-- translate/translate.json | 1089 ++++++++++++++++--------------- views/default-mobile.handlebars | 14 +- views/default.handlebars | 44 +- webserver.js | 8 + 5 files changed, 673 insertions(+), 606 deletions(-) diff --git a/meshuser.js b/meshuser.js index 748f19ea..9c632135 100644 --- a/meshuser.js +++ b/meshuser.js @@ -32,37 +32,38 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use const USERCONSENT_ShowConnectionToolbar = 64; // Mesh Rights - const MESHRIGHT_EDITMESH = 1; - const MESHRIGHT_MANAGEUSERS = 2; - const MESHRIGHT_MANAGECOMPUTERS = 4; - const MESHRIGHT_REMOTECONTROL = 8; - const MESHRIGHT_AGENTCONSOLE = 16; - const MESHRIGHT_SERVERFILES = 32; - const MESHRIGHT_WAKEDEVICE = 64; - const MESHRIGHT_SETNOTES = 128; - const MESHRIGHT_REMOTEVIEWONLY = 256; - const MESHRIGHT_NOTERMINAL = 512; - const MESHRIGHT_NOFILES = 1024; - const MESHRIGHT_NOAMT = 2048; - const MESHRIGHT_DESKLIMITEDINPUT = 4096; - const MESHRIGHT_LIMITEVENTS = 8192; - const MESHRIGHT_CHATNOTIFY = 16384; - const MESHRIGHT_UNINSTALL = 32768; - const MESHRIGHT_NODESKTOP = 65536; - const MESHRIGHT_ADMIN = 0xFFFFFFFF; + const MESHRIGHT_EDITMESH = 0x00000001; + const MESHRIGHT_MANAGEUSERS = 0x00000002; + const MESHRIGHT_MANAGECOMPUTERS = 0x00000004; + const MESHRIGHT_REMOTECONTROL = 0x00000008; + const MESHRIGHT_AGENTCONSOLE = 0x00000010; + const MESHRIGHT_SERVERFILES = 0x00000020; + const MESHRIGHT_WAKEDEVICE = 0x00000040; + const MESHRIGHT_SETNOTES = 0x00000080; + const MESHRIGHT_REMOTEVIEWONLY = 0x00000100; + const MESHRIGHT_NOTERMINAL = 0x00000200; + const MESHRIGHT_NOFILES = 0x00000400; + const MESHRIGHT_NOAMT = 0x00000800; + const MESHRIGHT_DESKLIMITEDINPUT = 0x00001000; + const MESHRIGHT_LIMITEVENTS = 0x00002000; + const MESHRIGHT_CHATNOTIFY = 0x00004000; + const MESHRIGHT_UNINSTALL = 0x00008000; + const MESHRIGHT_NODESKTOP = 0x00010000; + const MESHRIGHT_ADMIN = 0xFFFFFFFF; // Site rights - const SITERIGHT_SERVERBACKUP = 1; // 0x00000001 - const SITERIGHT_MANAGEUSERS = 2; // 0x00000002 - const SITERIGHT_SERVERRESTORE = 4; // 0x00000004 - const SITERIGHT_FILEACCESS = 8; // 0x00000008 - const SITERIGHT_SERVERUPDATE = 16; // 0x00000010 - const SITERIGHT_LOCKED = 32; // 0x00000020 - const SITERIGHT_NONEWGROUPS = 64; // 0x00000040 - const SITERIGHT_NOMESHCMD = 128; // 0x00000080 - const SITERIGHT_USERGROUPS = 256; // 0x00000100 - const SITERIGHT_RECORDINGS = 512; // 0x00000200 - const SITERIGHT_ADMIN = 0xFFFFFFFF; // 0xFFFFFFFF + const SITERIGHT_SERVERBACKUP = 0x00000001; + const SITERIGHT_MANAGEUSERS = 0x00000002; + const SITERIGHT_SERVERRESTORE = 0x00000004; + const SITERIGHT_FILEACCESS = 0x00000008; + const SITERIGHT_SERVERUPDATE = 0x00000010; + const SITERIGHT_LOCKED = 0x00000020; + const SITERIGHT_NONEWGROUPS = 0x00000040; + const SITERIGHT_NOMESHCMD = 0x00000080; + const SITERIGHT_USERGROUPS = 0x00000100; + const SITERIGHT_RECORDINGS = 0x00000200; + const SITERIGHT_LOCKSETTINGS = 0x00000400; + const SITERIGHT_ADMIN = 0xFFFFFFFF; var obj = {}; obj.user = user; @@ -1368,6 +1369,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'changelang': { + // If this account is settings locked, return here. + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; + if (common.validateString(command.lang, 1, 6) == false) return; // Always lowercase the email address @@ -1394,6 +1398,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use // If the email is the username, this command is not allowed. if (domain.usernameisemail) return; + // If this account is settings locked, return here. + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; + // Change our own email address if ((domain.auth == 'sspi') || (domain.auth == 'ldap')) return; if (common.validateEmail(command.email, 1, 1024) == false) return; @@ -1439,6 +1446,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'verifyemail': { + // If this account is settings locked, return here. + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; + // Send a account email verification email if ((domain.auth == 'sspi') || (domain.auth == 'ldap')) return; if (common.validateString(command.email, 3, 1024) == false) return; @@ -2311,6 +2321,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'changemeshnotify': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + var err = null; try { // Change the current user's notification flags for a meshid @@ -2347,6 +2359,9 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'changepassword': { + // If this account is settings locked, return here. + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; + // Change our own password if (common.validateString(command.oldpass, 1, 256) == false) break; if (common.validateString(command.newpass, 1, 256) == false) break; @@ -3848,6 +3863,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otpemail': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check input if (typeof command.enabled != 'boolean') return; @@ -3870,6 +3887,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otpauth-request': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check if 2-step login is supported const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if (twoStepLoginSupported) { @@ -3884,6 +3903,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otpauth-setup': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check if 2-step login is supported const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if (twoStepLoginSupported) { @@ -3912,6 +3933,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otpauth-clear': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check if 2-step login is supported const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if (twoStepLoginSupported) { @@ -3939,23 +3962,25 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if (twoStepLoginSupported == false) break; - // Perform a sub-action var actionTaken = false, actionText = null; - if (command.subaction == 1) { // Generate a new set of tokens - var randomNumbers = [], v; - for (var i = 0; i < 10; i++) { do { v = getRandomEightDigitInteger(); } while (randomNumbers.indexOf(v) >= 0); randomNumbers.push(v); } - user.otpkeys = { keys: [] }; - for (var i = 0; i < 10; i++) { user.otpkeys.keys[i] = { p: randomNumbers[i], u: true } } - actionTaken = true; - actionText = 'New 2FA backup codes generated.'; - } else if (command.subaction == 2) { // Clear all tokens - actionTaken = (user.otpkeys != null); - delete user.otpkeys; - if (actionTaken) { actionText = '2FA backup codes cleared.'; } - } + if ((user.siteadmin == 0xFFFFFFFF) || ((user.siteadmin & 1024) == 0)) { // Don't allow generation of tokens if the account is settings locked + // Perform a sub-action + if (command.subaction == 1) { // Generate a new set of tokens + var randomNumbers = [], v; + for (var i = 0; i < 10; i++) { do { v = getRandomEightDigitInteger(); } while (randomNumbers.indexOf(v) >= 0); randomNumbers.push(v); } + user.otpkeys = { keys: [] }; + for (var i = 0; i < 10; i++) { user.otpkeys.keys[i] = { p: randomNumbers[i], u: true } } + actionTaken = true; + actionText = 'New 2FA backup codes generated.'; + } else if (command.subaction == 2) { // Clear all tokens + actionTaken = (user.otpkeys != null); + delete user.otpkeys; + if (actionTaken) { actionText = '2FA backup codes cleared.'; } + } - // Save the changed user - if (actionTaken) { parent.db.SetUser(user); } + // Save the changed user + if (actionTaken) { parent.db.SetUser(user); } + } // Return one time passwords for this user if (count2factoraAuths() > 0) { @@ -3987,6 +4012,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otp-hkey-remove': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check if 2-step login is supported const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if (twoStepLoginSupported == false || command.index == null) break; @@ -4009,6 +4036,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'otp-hkey-yubikey-add': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Yubico API id and signature key can be requested from https://upgrade.yubico.com/getapikey/ var yubikeyotp = null; try { yubikeyotp = require('yubikeyotp'); } catch (ex) { } @@ -4062,6 +4091,8 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'webauthn-startregister': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. + // Check if 2-step login is supported const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if ((twoStepLoginSupported == false) || (command.name == null)) break; @@ -4074,6 +4105,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use } case 'webauthn-endregister': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. const twoStepLoginSupported = ((parent.parent.config.settings.no2factorauth !== true) && (domain.auth != 'sspi') && (parent.parent.certificates.CommonName.indexOf('.') != -1) && (args.nousers !== true)); if ((twoStepLoginSupported == false) || (obj.webAuthnReqistrationRequest == null)) return; @@ -4113,6 +4145,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use break; } case 'verifyPhone': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. if (parent.parent.smsserver == null) return; if (common.validateString(command.phone, 1, 18) == false) break; // Check phone length if (command.phone.match(/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/) == false) break; // Check phone @@ -4124,6 +4157,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use break; } case 'confirmPhone': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. if ((parent.parent.smsserver == null) || (typeof command.cookie != 'string') || (typeof command.code != 'string') || (obj.failedSmsCookieCheck == 1)) break; // Input checks var cookie = parent.parent.decodeCookie(command.cookie); if (cookie == null) break; // Invalid cookie @@ -4150,6 +4184,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use break; } case 'removePhone': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. if (user.phone == null) break; // Clear the user's phone @@ -4232,6 +4267,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use break; } case 'userWebState': { + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) return; // If this account is settings locked, return here. if (common.validateString(command.state, 1, 10000) == false) break; // Check state size, no more than 10k command.state = parent.filterUserWebState(command.state); // Filter the state to remove anything bad if ((command.state == null) || (typeof command.state !== 'string')) { console.log('tt'); break; } // If state did not validate correctly, quit here. diff --git a/translate/translate.json b/translate/translate.json index 89ecceaa..90272505 100644 --- a/translate/translate.json +++ b/translate/translate.json @@ -192,7 +192,7 @@ "zh-chs": " 用戶需要先登錄到該服務器一次,然後才能將其添加到設備組。", "xloc": [ "default.handlebars->27->1341", - "default.handlebars->27->1678" + "default.handlebars->27->1680" ] }, { @@ -429,7 +429,7 @@ "zh-chs": ",", "xloc": [ "default-mobile.handlebars->9->446", - "default.handlebars->27->1407" + "default.handlebars->27->1408" ] }, { @@ -640,8 +640,8 @@ "xloc": [ "default-mobile.handlebars->9->108", "default-mobile.handlebars->9->295", - "default.handlebars->27->1448", - "default.handlebars->27->1833", + "default.handlebars->27->1449", + "default.handlebars->27->1835", "default.handlebars->27->819" ] }, @@ -691,7 +691,7 @@ "ru": "1 активная сессия", "zh-chs": "1個活動會話", "xloc": [ - "default.handlebars->27->1747" + "default.handlebars->27->1749" ] }, { @@ -710,7 +710,7 @@ "xloc": [ "default-mobile.handlebars->9->118", "default-mobile.handlebars->9->450", - "default.handlebars->27->1467" + "default.handlebars->27->1468" ] }, { @@ -753,7 +753,7 @@ "ru": "1 группа", "zh-chs": "1組", "xloc": [ - "default.handlebars->27->1712" + "default.handlebars->27->1714" ] }, { @@ -825,7 +825,7 @@ "ru": "Еще 1 пользователь не показан, используйте поиск чтобы найти пользователей...", "zh-chs": "未再顯示1個用戶,請使用搜索框查找用戶...", "xloc": [ - "default.handlebars->27->1516" + "default.handlebars->27->1517" ] }, { @@ -882,7 +882,7 @@ "default-mobile.handlebars->9->168", "default-mobile.handlebars->9->171", "default-mobile.handlebars->9->174", - "default.handlebars->27->1520", + "default.handlebars->27->1521", "default.handlebars->27->228", "default.handlebars->27->231", "default.handlebars->27->234", @@ -1163,8 +1163,8 @@ "ru": "двухфакторная аутентификация включена", "zh-chs": "啟用第二因素身份驗證", "xloc": [ - "default.handlebars->27->1533", - "default.handlebars->27->1734" + "default.handlebars->27->1534", + "default.handlebars->27->1736" ] }, { @@ -1918,7 +1918,7 @@ "ru": "Доступ к файлам сервера", "zh-chs": "訪問服務器文件", "xloc": [ - "default.handlebars->27->1684" + "default.handlebars->27->1686" ] }, { @@ -2042,8 +2042,8 @@ "ru": "Аккаунт заблокирован", "zh-chs": "帐户已被锁定", "xloc": [ - "default.handlebars->27->1535", - "default.handlebars->27->1681" + "default.handlebars->27->1536", + "default.handlebars->27->1683" ] }, { @@ -2318,8 +2318,8 @@ "ru": "Добавить устройство", "zh-chs": "添加設備", "xloc": [ - "default.handlebars->27->1658", - "default.handlebars->27->1782" + "default.handlebars->27->1660", + "default.handlebars->27->1784" ] }, { @@ -2353,9 +2353,9 @@ "ru": "Добавить группу устройств", "zh-chs": "添加設備組", "xloc": [ - "default.handlebars->27->1373", - "default.handlebars->27->1652", - "default.handlebars->27->1770", + "default.handlebars->27->1374", + "default.handlebars->27->1654", + "default.handlebars->27->1772", "default.handlebars->27->216" ] }, @@ -2370,7 +2370,7 @@ "nl": "Machtigingen voor apparaatgroep toevoegen", "zh-chs": "添加设备组权限", "xloc": [ - "default.handlebars->27->1370" + "default.handlebars->27->1371" ] }, { @@ -2386,8 +2386,8 @@ "ru": "Добавить разрешения для устройства", "zh-chs": "添加设备权限", "xloc": [ - "default.handlebars->27->1375", - "default.handlebars->27->1377" + "default.handlebars->27->1376", + "default.handlebars->27->1378" ] }, { @@ -2472,7 +2472,7 @@ "ru": "Добавить участие", "zh-chs": "添加會員", "xloc": [ - "default.handlebars->27->1800" + "default.handlebars->27->1802" ] }, { @@ -2545,7 +2545,7 @@ "ru": "Добавить разрешения для пользовательских устройств", "zh-chs": "添加用户设备权限", "xloc": [ - "default.handlebars->27->1380" + "default.handlebars->27->1381" ] }, { @@ -2563,8 +2563,8 @@ "zh-chs": "添加用戶組", "xloc": [ "default.handlebars->27->1273", - "default.handlebars->27->1372", - "default.handlebars->27->1776", + "default.handlebars->27->1373", + "default.handlebars->27->1778", "default.handlebars->27->632" ] }, @@ -2579,7 +2579,7 @@ "nl": "Gebruikersmachtigingen voor apparaatgroep toevoegen", "zh-chs": "添加用户组设备权限", "xloc": [ - "default.handlebars->27->1382" + "default.handlebars->27->1383" ] }, { @@ -2625,7 +2625,7 @@ "zh-chs": "添加用戶", "xloc": [ "default.handlebars->27->1272", - "default.handlebars->27->1647" + "default.handlebars->27->1649" ] }, { @@ -2642,7 +2642,7 @@ "ru": "Добавить пользователей в группу устройств", "zh-chs": "將用戶添加到設備組", "xloc": [ - "default.handlebars->27->1369" + "default.handlebars->27->1370" ] }, { @@ -2659,7 +2659,7 @@ "ru": "Добавить пользователей в группу", "zh-chs": "將用戶添加到用戶組", "xloc": [ - "default.handlebars->27->1680" + "default.handlebars->27->1682" ] }, { @@ -2873,7 +2873,7 @@ "ru": "Области администратора", "zh-chs": "管理領域", "xloc": [ - "default.handlebars->27->1716" + "default.handlebars->27->1718" ] }, { @@ -2908,7 +2908,7 @@ "ru": "Административные области", "zh-chs": "行政領域", "xloc": [ - "default.handlebars->27->1598" + "default.handlebars->27->1599" ] }, { @@ -2925,7 +2925,7 @@ "ru": "Администратор", "zh-chs": "管理員", "xloc": [ - "default.handlebars->27->1527" + "default.handlebars->27->1528" ] }, { @@ -2962,8 +2962,8 @@ "default-mobile.handlebars->9->199", "default-mobile.handlebars->9->223", "default-mobile.handlebars->9->239", - "default.handlebars->27->1434", - "default.handlebars->27->1442", + "default.handlebars->27->1435", + "default.handlebars->27->1443", "default.handlebars->27->195", "default.handlebars->27->416", "default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->1" @@ -2983,8 +2983,8 @@ "ru": "Агент + Intel AMT", "zh-chs": "代理+英特爾AMT", "xloc": [ - "default.handlebars->27->1436", - "default.handlebars->27->1444" + "default.handlebars->27->1437", + "default.handlebars->27->1445" ] }, { @@ -3019,7 +3019,7 @@ "zh-chs": "代理控制台", "xloc": [ "default-mobile.handlebars->9->430", - "default.handlebars->27->1390" + "default.handlebars->27->1391" ] }, { @@ -3036,7 +3036,7 @@ "ru": "Счетчик ошибок агента", "zh-chs": "座席錯誤計數器", "xloc": [ - "default.handlebars->27->1843" + "default.handlebars->27->1845" ] }, { @@ -3113,7 +3113,7 @@ "ru": "Сессии агентов", "zh-chs": "座席會議", "xloc": [ - "default.handlebars->27->1859" + "default.handlebars->27->1861" ] }, { @@ -3148,7 +3148,7 @@ "ru": "Типы агента", "zh-chs": "代理類型", "xloc": [ - "default.handlebars->27->1440", + "default.handlebars->27->1441", "default.handlebars->container->column_l->p21->3->1->meshOsChartDiv->1" ] }, @@ -3236,7 +3236,7 @@ "ru": "Агенты", "zh-chs": "代理商", "xloc": [ - "default.handlebars->27->1872" + "default.handlebars->27->1874" ] }, { @@ -3279,7 +3279,7 @@ "en": "All Available", "nl": "Alle beschikbare", "xloc": [ - "default.handlebars->27->1490" + "default.handlebars->27->1491" ] }, { @@ -3300,7 +3300,7 @@ "en": "All Events", "nl": "Alle gebeurtenissen", "xloc": [ - "default.handlebars->27->1488" + "default.handlebars->27->1489" ] }, { @@ -3337,7 +3337,7 @@ "zh-chs": "允許用戶管理此設備組和該組中的設備。", "xloc": [ "default.handlebars->27->1339", - "default.handlebars->27->1677" + "default.handlebars->27->1679" ] }, { @@ -3442,7 +3442,7 @@ "zh-chs": "始終通知", "xloc": [ "default.handlebars->27->1253", - "default.handlebars->27->1725", + "default.handlebars->27->1727", "default.handlebars->27->574" ] }, @@ -3461,7 +3461,7 @@ "zh-chs": "總是提示", "xloc": [ "default.handlebars->27->1254", - "default.handlebars->27->1726", + "default.handlebars->27->1728", "default.handlebars->27->575" ] }, @@ -4071,7 +4071,7 @@ "ru": "Вы уверенны, что {0} плагин: {1}", "zh-chs": "您確定要{0}插件嗎:{1}", "xloc": [ - "default.handlebars->27->1912" + "default.handlebars->27->1914" ] }, { @@ -4167,7 +4167,7 @@ "ru": "Приложение аутентификации", "zh-chs": "身份驗證應用", "xloc": [ - "default.handlebars->27->1729" + "default.handlebars->27->1731" ] }, { @@ -4428,8 +4428,8 @@ "ru": "Фоновый и интерактивный", "zh-chs": "背景與互動", "xloc": [ - "default.handlebars->27->1417", - "default.handlebars->27->1424", + "default.handlebars->27->1418", + "default.handlebars->27->1425", "default.handlebars->27->335" ] }, @@ -4447,8 +4447,8 @@ "ru": "Только фоновый", "zh-chs": "僅背景", "xloc": [ - "default.handlebars->27->1418", - "default.handlebars->27->1425", + "default.handlebars->27->1419", + "default.handlebars->27->1426", "default.handlebars->27->336", "default.handlebars->27->360" ] @@ -4484,7 +4484,7 @@ "ru": "Резервные коды", "zh-chs": "備用碼", "xloc": [ - "default.handlebars->27->1731" + "default.handlebars->27->1733" ] }, { @@ -4501,7 +4501,7 @@ "ru": "Плохой ключ", "zh-chs": "錯誤的簽名", "xloc": [ - "default.handlebars->27->1850" + "default.handlebars->27->1852" ] }, { @@ -4518,7 +4518,7 @@ "ru": "Плохой веб-сертификат", "zh-chs": "錯誤的網絡證書", "xloc": [ - "default.handlebars->27->1849" + "default.handlebars->27->1851" ] }, { @@ -4656,7 +4656,7 @@ "ru": "Отправить сообщение", "zh-chs": "廣播", "xloc": [ - "default.handlebars->27->1645", + "default.handlebars->27->1647", "default.handlebars->container->column_l->p4->3->1->0->3->1" ] }, @@ -4674,7 +4674,7 @@ "ru": "Отправить сообщение", "zh-chs": "廣播消息", "xloc": [ - "default.handlebars->27->1580" + "default.handlebars->27->1581" ] }, { @@ -4691,7 +4691,7 @@ "ru": "Отправить сообщение всем подключенным пользователям.", "zh-chs": "向所有連接的用戶廣播消息。", "xloc": [ - "default.handlebars->27->1575" + "default.handlebars->27->1576" ] }, { @@ -4781,7 +4781,7 @@ "ru": "CIRA Сервер", "zh-chs": "CIRA服務器", "xloc": [ - "default.handlebars->27->1900" + "default.handlebars->27->1902" ] }, { @@ -4798,7 +4798,7 @@ "ru": "CIRA Сервер команды", "zh-chs": "CIRA服務器命令", "xloc": [ - "default.handlebars->27->1901" + "default.handlebars->27->1903" ] }, { @@ -4832,7 +4832,7 @@ "ru": "Загрузка CPU", "zh-chs": "CPU負載", "xloc": [ - "default.handlebars->27->1864" + "default.handlebars->27->1866" ] }, { @@ -4849,7 +4849,7 @@ "ru": "Загрузка CPU за последние 15 минут", "zh-chs": "最近15分鐘的CPU負載", "xloc": [ - "default.handlebars->27->1867" + "default.handlebars->27->1869" ] }, { @@ -4866,7 +4866,7 @@ "ru": "Загрузка CPU за последние 5 минут", "zh-chs": "最近5分鐘的CPU負載", "xloc": [ - "default.handlebars->27->1866" + "default.handlebars->27->1868" ] }, { @@ -4883,7 +4883,7 @@ "ru": "Загрузка CPU за последнюю минуту", "zh-chs": "最後一分鐘的CPU負載", "xloc": [ - "default.handlebars->27->1865" + "default.handlebars->27->1867" ] }, { @@ -4918,7 +4918,7 @@ "ru": "CSV", "zh-chs": "CSV", "xloc": [ - "default.handlebars->27->1498" + "default.handlebars->27->1499" ] }, { @@ -4935,8 +4935,8 @@ "ru": "Формат CSV", "zh-chs": "CSV格式", "xloc": [ - "default.handlebars->27->1502", - "default.handlebars->27->1567", + "default.handlebars->27->1503", + "default.handlebars->27->1568", "default.handlebars->27->459" ] }, @@ -4954,7 +4954,7 @@ "ru": "Ошибка вызова", "zh-chs": "通話錯誤", "xloc": [ - "default.handlebars->27->1913" + "default.handlebars->27->1915" ] }, { @@ -5094,7 +5094,7 @@ "ru": "Смена email для {0}", "zh-chs": "更改{0}的電子郵件", "xloc": [ - "default.handlebars->27->1759" + "default.handlebars->27->1761" ] }, { @@ -5132,7 +5132,7 @@ "xloc": [ "default-mobile.handlebars->9->90", "default.handlebars->27->1198", - "default.handlebars->27->1746" + "default.handlebars->27->1748" ] }, { @@ -5149,14 +5149,14 @@ "ru": "Смена пароля для {0}", "zh-chs": "更改{0}的密碼", "xloc": [ - "default.handlebars->27->1766" + "default.handlebars->27->1768" ] }, { "en": "Change Real Name for {0}", "nl": "Verander echte naam voor {0}", "xloc": [ - "default.handlebars->27->1754" + "default.handlebars->27->1756" ] }, { @@ -5226,7 +5226,7 @@ "ru": "Изменить пароль для этого пользователя", "zh-chs": "更改該用戶的密碼", "xloc": [ - "default.handlebars->27->1745" + "default.handlebars->27->1747" ] }, { @@ -5311,7 +5311,7 @@ "ru": "Чат", "zh-chs": "聊天室", "xloc": [ - "default.handlebars->27->1519", + "default.handlebars->27->1520", "default.handlebars->27->652", "default.handlebars->27->671" ] @@ -5333,7 +5333,7 @@ "default-mobile.handlebars->9->422", "default-mobile.handlebars->9->440", "default.handlebars->27->1367", - "default.handlebars->27->1401" + "default.handlebars->27->1402" ] }, { @@ -5438,7 +5438,7 @@ "ru": "Проверка...", "zh-chs": "檢查...", "xloc": [ - "default.handlebars->27->1907", + "default.handlebars->27->1909", "default.handlebars->27->971" ] }, @@ -5616,7 +5616,7 @@ "default-mobile.handlebars->9->318", "default-mobile.handlebars->9->320", "default-mobile.handlebars->9->59", - "default.handlebars->27->1482", + "default.handlebars->27->1483", "default.handlebars->27->838", "default.handlebars->27->840", "default.handlebars->27->842", @@ -5654,7 +5654,7 @@ "nl": "Wis alle meldingen", "zh-chs": "全部清除", "xloc": [ - "default.handlebars->27->1837" + "default.handlebars->27->1839" ] }, { @@ -5704,7 +5704,7 @@ "ru": "Очистить это уведомление", "zh-chs": "清除此通知", "xloc": [ - "default.handlebars->27->1836" + "default.handlebars->27->1838" ] }, { @@ -5750,7 +5750,7 @@ "zh-chs": "单击此处编辑设备组名称", "xloc": [ "default.handlebars->27->1233", - "default.handlebars->27->1438" + "default.handlebars->27->1439" ] }, { @@ -5780,7 +5780,7 @@ "nl": "Klik hier om de gebruikersgroepsnaam te bewerken", "zh-chs": "单击此处编辑用户组名称", "xloc": [ - "default.handlebars->27->1634" + "default.handlebars->27->1636" ] }, { @@ -5963,8 +5963,8 @@ "ru": "Общие группы устройств", "zh-chs": "通用設備組", "xloc": [ - "default.handlebars->27->1653", - "default.handlebars->27->1771" + "default.handlebars->27->1655", + "default.handlebars->27->1773" ] }, { @@ -5981,8 +5981,8 @@ "ru": "Общие устройства", "zh-chs": "通用設備", "xloc": [ - "default.handlebars->27->1659", - "default.handlebars->27->1783" + "default.handlebars->27->1661", + "default.handlebars->27->1785" ] }, { @@ -6000,7 +6000,7 @@ "zh-chs": "將{1}入口{2}中的{0}限製到此位置?", "xloc": [ "default-mobile.handlebars->9->127", - "default.handlebars->27->1477" + "default.handlebars->27->1478" ] }, { @@ -6020,10 +6020,10 @@ "default-mobile.handlebars->9->276", "default-mobile.handlebars->9->402", "default.handlebars->27->1318", - "default.handlebars->27->1547", - "default.handlebars->27->1624", - "default.handlebars->27->1673", - "default.handlebars->27->1769", + "default.handlebars->27->1548", + "default.handlebars->27->1626", + "default.handlebars->27->1675", + "default.handlebars->27->1771", "default.handlebars->27->443", "default.handlebars->27->712", "default.handlebars->27->721" @@ -6076,7 +6076,7 @@ "nl": "Bevestig verwijdering geselecteerde account(s)?", "zh-chs": "确认删除选定的帐户?", "xloc": [ - "default.handlebars->27->1546" + "default.handlebars->27->1547" ] }, { @@ -6107,7 +6107,7 @@ "nl": "Bevestig verwijdering geselecteerde gebruikersgroep(en)?", "zh-chs": "确认删除选定的用户组?", "xloc": [ - "default.handlebars->27->1623" + "default.handlebars->27->1625" ] }, { @@ -6124,7 +6124,7 @@ "ru": "Подтвердить удаление пользователя {0}?", "zh-chs": "確認刪除用戶{0}?", "xloc": [ - "default.handlebars->27->1768" + "default.handlebars->27->1770" ] }, { @@ -6138,7 +6138,7 @@ "nl": "Bevestig lidmaatschap verwijderen van gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的成员身份?", "xloc": [ - "default.handlebars->27->1676" + "default.handlebars->27->1678" ] }, { @@ -6152,7 +6152,7 @@ "nl": "Bevestig lidmaatschap verwijdering van gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组 “{0}” 的成员身份?", "xloc": [ - "default.handlebars->27->1798" + "default.handlebars->27->1800" ] }, { @@ -6205,7 +6205,7 @@ "ru": "Подтвердить перезапись?", "zh-chs": "確認覆蓋?", "xloc": [ - "default.handlebars->27->1476" + "default.handlebars->27->1477" ] }, { @@ -6219,8 +6219,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaat \\\"{0}\\\"?", "zh-chs": "确认删除设备“ {0} ”的访问权限?", "xloc": [ - "default.handlebars->27->1666", - "default.handlebars->27->1789" + "default.handlebars->27->1668", + "default.handlebars->27->1791" ] }, { @@ -6234,8 +6234,8 @@ "nl": "Bevestig verwijdering van toegangsrechten voor apparaatgroep \\\"{0}\\\"?", "zh-chs": "是否确认删除设备组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->27->1668", - "default.handlebars->27->1802" + "default.handlebars->27->1670", + "default.handlebars->27->1804" ] }, { @@ -6249,7 +6249,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户\\“ {0} \\”的访问权限?", "xloc": [ - "default.handlebars->27->1791" + "default.handlebars->27->1793" ] }, { @@ -6263,7 +6263,7 @@ "nl": "Bevestig verwijdering van toegangsrechten voor gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组“ {0}”的访问权限?", "xloc": [ - "default.handlebars->27->1794" + "default.handlebars->27->1796" ] }, { @@ -6277,8 +6277,8 @@ "nl": "Verwijdering van toegangsrechten bevestigen?", "zh-chs": "确认删除访问权限?", "xloc": [ - "default.handlebars->27->1792", - "default.handlebars->27->1795" + "default.handlebars->27->1794", + "default.handlebars->27->1797" ] }, { @@ -6351,7 +6351,7 @@ "nl": "Bevestig de verwijdering van rechten voor gebruiker \\\"{0}\\\"?", "zh-chs": "确认删除用户“ {0} ”的权限?", "xloc": [ - "default.handlebars->27->1410" + "default.handlebars->27->1411" ] }, { @@ -6365,7 +6365,7 @@ "nl": "Bevestig de verwijdering van rechten voor de gebruikergroep \\\"{0}\\\"?", "zh-chs": "确认删除用户组“ {0} ”的权限?", "xloc": [ - "default.handlebars->27->1412" + "default.handlebars->27->1413" ] }, { @@ -6526,7 +6526,7 @@ "ru": "Подключено Intel® AMT", "zh-chs": "連接的英特爾®AMT", "xloc": [ - "default.handlebars->27->1855" + "default.handlebars->27->1857" ] }, { @@ -6543,7 +6543,7 @@ "ru": "Подключенные пользователи", "zh-chs": "關聯用戶", "xloc": [ - "default.handlebars->27->1860" + "default.handlebars->27->1862" ] }, { @@ -6620,7 +6620,7 @@ "ru": "Подключений ", "zh-chs": "連接數", "xloc": [ - "default.handlebars->27->1871" + "default.handlebars->27->1873" ] }, { @@ -6637,7 +6637,7 @@ "ru": "Ретранслятор подключения", "zh-chs": "連接繼電器", "xloc": [ - "default.handlebars->27->1899" + "default.handlebars->27->1901" ] }, { @@ -6689,7 +6689,7 @@ "zh-chs": "連接性", "xloc": [ "default-mobile.handlebars->9->244", - "default.handlebars->27->1445", + "default.handlebars->27->1446", "default.handlebars->27->213", "default.handlebars->27->588", "default.handlebars->container->column_l->p21->3->1->meshConnChartDiv->1" @@ -6765,7 +6765,7 @@ "ru": "Cookie-кодировщик", "zh-chs": "Cookie編碼器", "xloc": [ - "default.handlebars->27->1885" + "default.handlebars->27->1887" ] }, { @@ -6888,8 +6888,8 @@ "ru": "Скопировать ссылку в буфер обмена", "zh-chs": "複製鏈接到剪貼板", "xloc": [ - "default.handlebars->27->1450", - "default.handlebars->27->1464", + "default.handlebars->27->1451", + "default.handlebars->27->1465", "default.handlebars->27->348" ] }, @@ -7084,7 +7084,7 @@ "ru": "Основной сервер", "zh-chs": "核心服務器", "xloc": [ - "default.handlebars->27->1884" + "default.handlebars->27->1886" ] }, { @@ -7118,7 +7118,7 @@ "ru": "Создать учетную запись", "zh-chs": "創建帳號", "xloc": [ - "default.handlebars->27->1594", + "default.handlebars->27->1595", "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" ] @@ -7154,7 +7154,7 @@ "ru": "Создать группу пользователей", "zh-chs": "創建用戶組", "xloc": [ - "default.handlebars->27->1631" + "default.handlebars->27->1633" ] }, { @@ -7205,7 +7205,7 @@ "ru": "Создайте сразу несколько учетных записей, импортировав файл JSON в следующем формате:", "zh-chs": "通過導入以下格式的JSON文件一次創建多個帳戶:", "xloc": [ - "default.handlebars->27->1558" + "default.handlebars->27->1559" ] }, { @@ -7240,7 +7240,7 @@ "ru": "Создано", "zh-chs": "創建", "xloc": [ - "default.handlebars->27->1705" + "default.handlebars->27->1707" ] }, { @@ -7561,10 +7561,10 @@ "en": "Default", "nl": "Standaard", "xloc": [ - "default.handlebars->27->1581", - "default.handlebars->27->1627", - "default.handlebars->27->1638", - "default.handlebars->27->1694" + "default.handlebars->27->1582", + "default.handlebars->27->1629", + "default.handlebars->27->1640", + "default.handlebars->27->1696" ] }, { @@ -7585,7 +7585,7 @@ "default-mobile.handlebars->9->301", "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1", "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1", - "default.handlebars->27->1471", + "default.handlebars->27->1472", "default.handlebars->27->492", "default.handlebars->27->825", "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3", @@ -7625,7 +7625,7 @@ "nl": "Verwijder accounts", "zh-chs": "删除帐号", "xloc": [ - "default.handlebars->27->1548" + "default.handlebars->27->1549" ] }, { @@ -7715,7 +7715,7 @@ "ru": "Удалить пользователя", "zh-chs": "刪除用戶", "xloc": [ - "default.handlebars->27->1744" + "default.handlebars->27->1746" ] }, { @@ -7732,8 +7732,8 @@ "ru": "Удалить группу пользователей", "zh-chs": "刪除用戶組", "xloc": [ - "default.handlebars->27->1664", - "default.handlebars->27->1674" + "default.handlebars->27->1666", + "default.handlebars->27->1676" ] }, { @@ -7747,7 +7747,7 @@ "nl": "Gebruikersgroepen verwijderen", "zh-chs": "删除用户组", "xloc": [ - "default.handlebars->27->1625" + "default.handlebars->27->1627" ] }, { @@ -7764,7 +7764,7 @@ "ru": "Удалить пользователя {0}", "zh-chs": "刪除用戶{0}", "xloc": [ - "default.handlebars->27->1767" + "default.handlebars->27->1769" ] }, { @@ -7782,7 +7782,7 @@ "zh-chs": "刪除帳戶", "xloc": [ "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->p3AccountActions->p2AccountActions->3->9->0", - "default.handlebars->27->1544", + "default.handlebars->27->1545", "default.handlebars->container->column_l->p2->p2info->p2AccountActions->3->p2AccountPassActions->7" ] }, @@ -7814,7 +7814,7 @@ "nl": "Verwijder groep", "zh-chs": "删除群组", "xloc": [ - "default.handlebars->27->1621" + "default.handlebars->27->1623" ] }, { @@ -7850,7 +7850,7 @@ "xloc": [ "default-mobile.handlebars->9->124", "default-mobile.handlebars->9->303", - "default.handlebars->27->1473", + "default.handlebars->27->1474", "default.handlebars->27->827" ] }, @@ -7868,7 +7868,7 @@ "ru": "Удалить группу пользователей {0}?", "zh-chs": "刪除用戶組{0}?", "xloc": [ - "default.handlebars->27->1672" + "default.handlebars->27->1674" ] }, { @@ -7887,7 +7887,7 @@ "xloc": [ "default-mobile.handlebars->9->123", "default-mobile.handlebars->9->302", - "default.handlebars->27->1472", + "default.handlebars->27->1473", "default.handlebars->27->826" ] }, @@ -8005,10 +8005,10 @@ "default.handlebars->27->1210", "default.handlebars->27->1238", "default.handlebars->27->1321", - "default.handlebars->27->1630", - "default.handlebars->27->1640", - "default.handlebars->27->1641", - "default.handlebars->27->1670", + "default.handlebars->27->1632", + "default.handlebars->27->1642", + "default.handlebars->27->1643", + "default.handlebars->27->1672", "default.handlebars->27->533", "default.handlebars->27->534", "default.handlebars->27->755", @@ -8048,7 +8048,7 @@ "xloc": [ "default-mobile.handlebars->9->256", "default.handlebars->27->1326", - "default.handlebars->27->1814", + "default.handlebars->27->1816", "default.handlebars->27->498", "default.handlebars->27->800", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop", @@ -8087,7 +8087,7 @@ "zh-chs": "桌面通知", "xloc": [ "default.handlebars->27->1248", - "default.handlebars->27->1720", + "default.handlebars->27->1722", "default.handlebars->27->569" ] }, @@ -8106,7 +8106,7 @@ "zh-chs": "桌面提示", "xloc": [ "default.handlebars->27->1247", - "default.handlebars->27->1719", + "default.handlebars->27->1721", "default.handlebars->27->568" ] }, @@ -8125,7 +8125,7 @@ "zh-chs": "桌面提示+工具欄", "xloc": [ "default.handlebars->27->1245", - "default.handlebars->27->1717", + "default.handlebars->27->1719", "default.handlebars->27->566" ] }, @@ -8158,7 +8158,7 @@ "zh-chs": "桌面工具欄", "xloc": [ "default.handlebars->27->1246", - "default.handlebars->27->1718", + "default.handlebars->27->1720", "default.handlebars->27->567" ] }, @@ -8238,7 +8238,7 @@ "zh-chs": "設備", "xloc": [ "default.handlebars->27->1348", - "default.handlebars->27->1786", + "default.handlebars->27->1788", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5" ] }, @@ -8277,11 +8277,11 @@ "default.handlebars->27->1343", "default.handlebars->27->1346", "default.handlebars->27->1347", - "default.handlebars->27->1495", - "default.handlebars->27->1656", - "default.handlebars->27->1662", - "default.handlebars->27->1774", - "default.handlebars->27->1823" + "default.handlebars->27->1496", + "default.handlebars->27->1658", + "default.handlebars->27->1664", + "default.handlebars->27->1776", + "default.handlebars->27->1825" ] }, { @@ -8299,7 +8299,7 @@ "zh-chs": "設備組用戶", "xloc": [ "default-mobile.handlebars->9->447", - "default.handlebars->27->1408" + "default.handlebars->27->1409" ] }, { @@ -8317,11 +8317,11 @@ "zh-chs": "設備組", "xloc": [ "default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3", - "default.handlebars->27->1511", - "default.handlebars->27->1615", - "default.handlebars->27->1643", - "default.handlebars->27->1714", - "default.handlebars->27->1858", + "default.handlebars->27->1512", + "default.handlebars->27->1617", + "default.handlebars->27->1645", + "default.handlebars->27->1716", + "default.handlebars->27->1860", "default.handlebars->container->column_l->p2->p2info->7" ] }, @@ -8382,7 +8382,7 @@ "zh-chs": "設備名稱", "xloc": [ "default-mobile.handlebars->9->278", - "default.handlebars->27->1822", + "default.handlebars->27->1824", "default.handlebars->27->269", "default.handlebars->27->753", "player.handlebars->3->9" @@ -8437,7 +8437,7 @@ "zh-chs": "設備連接。", "xloc": [ "default.handlebars->27->1178", - "default.handlebars->27->1429" + "default.handlebars->27->1430" ] }, { @@ -8455,7 +8455,7 @@ "zh-chs": "設備斷開連接。", "xloc": [ "default.handlebars->27->1179", - "default.handlebars->27->1430" + "default.handlebars->27->1431" ] }, { @@ -8782,8 +8782,8 @@ "nl": "Apparaten", "zh-chs": "设备", "xloc": [ - "default.handlebars->27->1616", - "default.handlebars->27->1644" + "default.handlebars->27->1618", + "default.handlebars->27->1646" ] }, { @@ -8951,7 +8951,7 @@ "ru": "Показать публичную ссылку", "zh-chs": "显示公共链接", "xloc": [ - "default.handlebars->27->1449" + "default.handlebars->27->1450" ] }, { @@ -8975,10 +8975,10 @@ "en": "Domain", "nl": "Domein", "xloc": [ - "default.handlebars->27->1582", - "default.handlebars->27->1628", - "default.handlebars->27->1637", - "default.handlebars->27->1693", + "default.handlebars->27->1583", + "default.handlebars->27->1630", + "default.handlebars->27->1639", + "default.handlebars->27->1695", "mstsc.handlebars->main->1->3->1->2->1->0", "mstsc.handlebars->main->1->3->1->2->3" ] @@ -9183,7 +9183,7 @@ "en": "Download Report", "nl": "Rapport downloaden", "xloc": [ - "default.handlebars->27->1500", + "default.handlebars->27->1501", "default.handlebars->container->column_l->p3->3->1->0->3" ] }, @@ -9337,7 +9337,7 @@ "ru": "Скачать список событий в одном из форматов ниже.", "zh-chs": "使用以下一種文件格式下載事件列表。", "xloc": [ - "default.handlebars->27->1501" + "default.handlebars->27->1502" ] }, { @@ -9354,7 +9354,7 @@ "ru": "Скачать список пользователей в одном из форматов ниже.", "zh-chs": "使用以下一種文件格式下載用戶列表。", "xloc": [ - "default.handlebars->27->1566" + "default.handlebars->27->1567" ] }, { @@ -9437,7 +9437,7 @@ "nl": "Dubbele agent", "zh-chs": "代理重复", "xloc": [ - "default.handlebars->27->1854" + "default.handlebars->27->1856" ] }, { @@ -9471,7 +9471,7 @@ "ru": "Скопировать группу пользователей", "zh-chs": "重複的用戶組", "xloc": [ - "default.handlebars->27->1632" + "default.handlebars->27->1634" ] }, { @@ -9502,8 +9502,8 @@ "ru": "Длительность", "zh-chs": "持續時間", "xloc": [ - "default.handlebars->27->1808", - "default.handlebars->27->1828", + "default.handlebars->27->1810", + "default.handlebars->27->1830", "player.handlebars->3->2" ] }, @@ -9768,8 +9768,8 @@ "default-mobile.handlebars->9->426", "default.handlebars->27->1322", "default.handlebars->27->1352", - "default.handlebars->27->1374", - "default.handlebars->27->1386" + "default.handlebars->27->1375", + "default.handlebars->27->1387" ] }, { @@ -9803,8 +9803,8 @@ "ru": "Редактировать права группы устройств", "zh-chs": "編輯設備組權限", "xloc": [ - "default.handlebars->27->1371", - "default.handlebars->27->1383" + "default.handlebars->27->1372", + "default.handlebars->27->1384" ] }, { @@ -9855,8 +9855,8 @@ "ru": "Изменить разрешения устройства", "zh-chs": "编辑设备权限", "xloc": [ - "default.handlebars->27->1376", - "default.handlebars->27->1378" + "default.handlebars->27->1377", + "default.handlebars->27->1379" ] }, { @@ -9931,7 +9931,7 @@ "zh-chs": "編輯筆記", "xloc": [ "default-mobile.handlebars->9->433", - "default.handlebars->27->1393" + "default.handlebars->27->1394" ] }, { @@ -9962,7 +9962,7 @@ "ru": "Редактировать права пользователя для группы устройств", "zh-chs": "編輯用戶設備組權限", "xloc": [ - "default.handlebars->27->1384" + "default.handlebars->27->1385" ] }, { @@ -9978,7 +9978,7 @@ "ru": "Изменить разрешения для пользовательских устройств", "zh-chs": "编辑用户设备权限", "xloc": [ - "default.handlebars->27->1379" + "default.handlebars->27->1380" ] }, { @@ -9995,7 +9995,7 @@ "ru": "Редактировать группу пользователей", "zh-chs": "編輯用戶組", "xloc": [ - "default.handlebars->27->1671" + "default.handlebars->27->1673" ] }, { @@ -10009,7 +10009,7 @@ "nl": "Gebruikersmachtigingen voor apparaatgroep bewerken", "zh-chs": "编辑用户组设备权限", "xloc": [ - "default.handlebars->27->1381" + "default.handlebars->27->1382" ] }, { @@ -10051,11 +10051,11 @@ "zh-chs": "電子郵件", "xloc": [ "default-mobile.handlebars->9->78", - "default.handlebars->27->1584", - "default.handlebars->27->1697", + "default.handlebars->27->1585", "default.handlebars->27->1699", - "default.handlebars->27->1739", - "default.handlebars->27->1755", + "default.handlebars->27->1701", + "default.handlebars->27->1741", + "default.handlebars->27->1757", "default.handlebars->27->319", "login-mobile.handlebars->5->42", "login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3", @@ -10171,7 +10171,7 @@ "ru": "Электронная почта не подтверждена", "zh-chs": "邮件未验证", "xloc": [ - "default.handlebars->27->1530" + "default.handlebars->27->1531" ] }, { @@ -10188,8 +10188,8 @@ "ru": "Email подтвержден", "zh-chs": "電子郵件已驗證", "xloc": [ - "default.handlebars->27->1531", - "default.handlebars->27->1691" + "default.handlebars->27->1532", + "default.handlebars->27->1693" ] }, { @@ -10206,7 +10206,7 @@ "ru": "Email подтвержден.", "zh-chs": "電子郵件已驗證。", "xloc": [ - "default.handlebars->27->1590" + "default.handlebars->27->1591" ] }, { @@ -10223,7 +10223,7 @@ "ru": "Email не подтвержден", "zh-chs": "電子郵件未驗證", "xloc": [ - "default.handlebars->27->1692" + "default.handlebars->27->1694" ] }, { @@ -10262,7 +10262,7 @@ "en": "Email verified and forced password reset required.", "nl": "E-mail geverifieerd en geforceerd opnieuw instellen van wachtwoord vereist.", "xloc": [ - "default.handlebars->27->1591" + "default.handlebars->27->1592" ] }, { @@ -10275,7 +10275,7 @@ "nl": "Email/SMS verkeer", "zh-chs": "电子邮件/短信流量", "xloc": [ - "default.handlebars->27->1893" + "default.handlebars->27->1895" ] }, { @@ -10314,7 +10314,7 @@ "ru": "Включить коды приглашения", "zh-chs": "啟用邀請代碼", "xloc": [ - "default.handlebars->27->1414" + "default.handlebars->27->1415" ] }, { @@ -10373,7 +10373,7 @@ "en": "Enabled", "nl": "Ingeschakeld", "xloc": [ - "default.handlebars->27->1830" + "default.handlebars->27->1832" ] }, { @@ -10397,7 +10397,7 @@ "en": "End Time", "nl": "Eindtijd", "xloc": [ - "default.handlebars->27->1827" + "default.handlebars->27->1829" ] }, { @@ -10653,7 +10653,7 @@ "ru": "Введите разделенный запятыми список имен административных областей.", "zh-chs": "輸入管理領域名稱的逗號分隔列表。", "xloc": [ - "default.handlebars->27->1595" + "default.handlebars->27->1596" ] }, { @@ -10837,7 +10837,7 @@ "ru": "Экспорт списка событий", "zh-chs": "活動列表導出", "xloc": [ - "default.handlebars->27->1506" + "default.handlebars->27->1507" ] }, { @@ -10960,7 +10960,7 @@ "ru": "Внешний", "zh-chs": "外部", "xloc": [ - "default.handlebars->27->1878" + "default.handlebars->27->1880" ] }, { @@ -11173,7 +11173,7 @@ "default-mobile.handlebars->9->167", "default-mobile.handlebars->9->257", "default.handlebars->27->1333", - "default.handlebars->27->1815", + "default.handlebars->27->1817", "default.handlebars->27->236", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles", "default.handlebars->contextMenu->cxfiles" @@ -11211,7 +11211,7 @@ "zh-chs": "文件通知", "xloc": [ "default.handlebars->27->1252", - "default.handlebars->27->1724", + "default.handlebars->27->1726", "default.handlebars->27->573" ] }, @@ -11230,7 +11230,7 @@ "zh-chs": "文件提示", "xloc": [ "default.handlebars->27->1251", - "default.handlebars->27->1723", + "default.handlebars->27->1725", "default.handlebars->27->572" ] }, @@ -11391,8 +11391,8 @@ "ru": "Принудительно сбросить пароль при следующем входе в систему.", "zh-chs": "下次登錄時強制重置密碼。", "xloc": [ - "default.handlebars->27->1589", - "default.handlebars->27->1764" + "default.handlebars->27->1590", + "default.handlebars->27->1766" ] }, { @@ -11451,7 +11451,7 @@ "en": "Format", "nl": "Formaat", "xloc": [ - "default.handlebars->27->1497" + "default.handlebars->27->1498" ] }, { @@ -11485,8 +11485,8 @@ "ru": "Свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->27->1839", - "default.handlebars->27->1841" + "default.handlebars->27->1841", + "default.handlebars->27->1843" ] }, { @@ -11680,7 +11680,7 @@ "default-mobile.handlebars->9->425", "default.handlebars->27->1219", "default.handlebars->27->1351", - "default.handlebars->27->1601" + "default.handlebars->27->1602" ] }, { @@ -11697,7 +11697,7 @@ "ru": "Администратор с полным доступом (все права)", "zh-chs": "正式管理員(保留所有權利)", "xloc": [ - "default.handlebars->27->1385" + "default.handlebars->27->1386" ] }, { @@ -11780,7 +11780,7 @@ "ru": "Администратор с полным доступом", "zh-chs": "正式管理員", "xloc": [ - "default.handlebars->27->1685" + "default.handlebars->27->1687" ] }, { @@ -12211,8 +12211,8 @@ "ru": "Групповое действие", "zh-chs": "集體行動", "xloc": [ - "default.handlebars->27->1545", - "default.handlebars->27->1622", + "default.handlebars->27->1546", + "default.handlebars->27->1624", "default.handlebars->27->441", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar", "default.handlebars->container->column_l->p4->3->1->0->3->3", @@ -12223,14 +12223,14 @@ "en": "Group By", "nl": "Groeperen op", "xloc": [ - "default.handlebars->27->1493" + "default.handlebars->27->1494" ] }, { "en": "Group Identifier", "nl": "Groepsidentificatie", "xloc": [ - "default.handlebars->27->1639" + "default.handlebars->27->1641" ] }, { @@ -12247,7 +12247,7 @@ "ru": "Члены группы", "zh-chs": "小組成員", "xloc": [ - "default.handlebars->27->1648" + "default.handlebars->27->1650" ] }, { @@ -12419,7 +12419,7 @@ "ru": "Всего кучи", "zh-chs": "堆總數", "xloc": [ - "default.handlebars->27->1880" + "default.handlebars->27->1882" ] }, { @@ -12436,7 +12436,7 @@ "ru": "Куча используется", "zh-chs": "堆使用", "xloc": [ - "default.handlebars->27->1879" + "default.handlebars->27->1881" ] }, { @@ -12677,7 +12677,7 @@ "zh-chs": "保持{2}的{0}入口{1}", "xloc": [ "default-mobile.handlebars->9->129", - "default.handlebars->27->1479" + "default.handlebars->27->1480" ] }, { @@ -13234,8 +13234,8 @@ "ru": "Тип установки", "zh-chs": "安裝類型", "xloc": [ - "default.handlebars->27->1416", - "default.handlebars->27->1423", + "default.handlebars->27->1417", + "default.handlebars->27->1424", "default.handlebars->27->334", "default.handlebars->27->358" ] @@ -13272,10 +13272,10 @@ "ru": "Intel AMT", "zh-chs": "英特爾AMT", "xloc": [ - "default.handlebars->27->1435", - "default.handlebars->27->1443", - "default.handlebars->27->1876", - "default.handlebars->27->1898" + "default.handlebars->27->1436", + "default.handlebars->27->1444", + "default.handlebars->27->1878", + "default.handlebars->27->1900" ] }, { @@ -13316,14 +13316,14 @@ "en": "Intel AMT Redirection", "nl": "Intel AMT omleiding", "xloc": [ - "default.handlebars->27->1817" + "default.handlebars->27->1819" ] }, { "en": "Intel AMT WSMAN", "nl": "Intel AMT WSMAN", "xloc": [ - "default.handlebars->27->1816" + "default.handlebars->27->1818" ] }, { @@ -13658,7 +13658,7 @@ "zh-chs": "英特爾®AMT桌面和串行事件。", "xloc": [ "default.handlebars->27->1180", - "default.handlebars->27->1431" + "default.handlebars->27->1432" ] }, { @@ -13967,8 +13967,8 @@ "ru": "Только интерактивный режим", "zh-chs": "僅限互動", "xloc": [ - "default.handlebars->27->1419", - "default.handlebars->27->1426", + "default.handlebars->27->1420", + "default.handlebars->27->1427", "default.handlebars->27->337", "default.handlebars->27->361" ] @@ -14021,7 +14021,7 @@ "ru": "Некорректный тип группы устройств", "zh-chs": "無效的設備組類型", "xloc": [ - "default.handlebars->27->1853" + "default.handlebars->27->1855" ] }, { @@ -14038,7 +14038,7 @@ "ru": "Некорректный JSON", "zh-chs": "無效的JSON", "xloc": [ - "default.handlebars->27->1847" + "default.handlebars->27->1849" ] }, { @@ -14055,8 +14055,8 @@ "ru": "Некорректный формат файла JSON.", "zh-chs": "無效的JSON文件格式。", "xloc": [ - "default.handlebars->27->1563", - "default.handlebars->27->1565" + "default.handlebars->27->1564", + "default.handlebars->27->1566" ] }, { @@ -14073,7 +14073,7 @@ "ru": "Некорректный файл JSON: {0}.", "zh-chs": "無效的JSON文件:{0}。", "xloc": [ - "default.handlebars->27->1561" + "default.handlebars->27->1562" ] }, { @@ -14090,7 +14090,7 @@ "ru": "Некорректная сигнатура PKCS", "zh-chs": "無效的PKCS簽名", "xloc": [ - "default.handlebars->27->1845" + "default.handlebars->27->1847" ] }, { @@ -14107,7 +14107,7 @@ "ru": "Некорректная сигнатура RSA", "zh-chs": "無效的RSA密碼", "xloc": [ - "default.handlebars->27->1846" + "default.handlebars->27->1848" ] }, { @@ -14185,7 +14185,7 @@ "en": "Invalidate Email", "nl": "E-mail ongeldig maken", "xloc": [ - "default.handlebars->27->1539" + "default.handlebars->27->1540" ] }, { @@ -14250,7 +14250,7 @@ "ru": "Коды приглашений могут использоваться любым пользователем для присоединения устройств к этой группе устройств по следующей общедоступной ссылке:", "zh-chs": "任何人都可以使用邀請代碼通過以下公共鏈接將設備加入該設備組:", "xloc": [ - "default.handlebars->27->1421" + "default.handlebars->27->1422" ] }, { @@ -14303,10 +14303,10 @@ "zh-chs": "邀請碼", "xloc": [ "default.handlebars->27->1263", - "default.handlebars->27->1415", - "default.handlebars->27->1420", - "default.handlebars->27->1422", - "default.handlebars->27->1427" + "default.handlebars->27->1416", + "default.handlebars->27->1421", + "default.handlebars->27->1423", + "default.handlebars->27->1428" ] }, { @@ -14423,7 +14423,7 @@ "ru": "JSON", "zh-chs": "JSON", "xloc": [ - "default.handlebars->27->1499" + "default.handlebars->27->1500" ] }, { @@ -14440,8 +14440,8 @@ "ru": "Формат JSON", "zh-chs": "JSON格式", "xloc": [ - "default.handlebars->27->1504", - "default.handlebars->27->1569", + "default.handlebars->27->1505", + "default.handlebars->27->1570", "default.handlebars->27->461" ] }, @@ -14941,7 +14941,7 @@ "ru": "Последний доступ", "zh-chs": "最後訪問", "xloc": [ - "default.handlebars->27->1512" + "default.handlebars->27->1513" ] }, { @@ -14958,7 +14958,7 @@ "ru": "Последний вход в систему", "zh-chs": "上次登錄", "xloc": [ - "default.handlebars->27->1706" + "default.handlebars->27->1708" ] }, { @@ -15021,7 +15021,7 @@ "ru": "Последнее изменение: {0}", "zh-chs": "上次更改:{0}", "xloc": [ - "default.handlebars->27->1710" + "default.handlebars->27->1712" ] }, { @@ -15072,7 +15072,7 @@ "ru": "Последний вход в систему: {0}", "zh-chs": "上次登錄:{0}", "xloc": [ - "default.handlebars->27->1522" + "default.handlebars->27->1523" ] }, { @@ -15209,7 +15209,7 @@ "nl": "Leeg laten voor geen.", "zh-chs": "一无所有。", "xloc": [ - "default.handlebars->27->1750" + "default.handlebars->27->1752" ] }, { @@ -15248,7 +15248,7 @@ "ru": "Меньше", "zh-chs": "減", "xloc": [ - "default.handlebars->27->1915" + "default.handlebars->27->1917" ] }, { @@ -15301,7 +15301,7 @@ "zh-chs": "有限輸入", "xloc": [ "default-mobile.handlebars->9->438", - "default.handlebars->27->1399", + "default.handlebars->27->1400", "default.handlebars->27->644", "default.handlebars->27->663" ] @@ -15690,7 +15690,7 @@ "default-mobile.handlebars->9->72", "default.handlebars->27->1226", "default.handlebars->27->1230", - "default.handlebars->27->1804", + "default.handlebars->27->1806", "default.handlebars->27->725", "default.handlebars->27->959" ] @@ -15813,7 +15813,14 @@ "ru": "Заблокировать учетную запись", "zh-chs": "鎖定賬戶", "xloc": [ - "default.handlebars->27->1608" + "default.handlebars->27->1609" + ] + }, + { + "en": "Lock Account Settings", + "xloc": [ + "default.handlebars->27->1369", + "default.handlebars->27->1612" ] }, { @@ -15830,7 +15837,7 @@ "ru": "Заблокировать учетную запись", "zh-chs": "鎖定賬戶", "xloc": [ - "default.handlebars->27->1542" + "default.handlebars->27->1543" ] }, { @@ -15847,7 +15854,7 @@ "ru": "Заблокирован", "zh-chs": "已鎖定", "xloc": [ - "default.handlebars->27->1523" + "default.handlebars->27->1524" ] }, { @@ -15864,7 +15871,7 @@ "ru": "Заблокированная учетная запись", "zh-chs": "賬戶鎖定", "xloc": [ - "default.handlebars->27->1682" + "default.handlebars->27->1684" ] }, { @@ -16363,7 +16370,7 @@ "ru": "Сообщения главного сервера", "zh-chs": "主服務器消息", "xloc": [ - "default.handlebars->27->1887" + "default.handlebars->27->1889" ] }, { @@ -16452,7 +16459,7 @@ "default-mobile.handlebars->9->410", "default-mobile.handlebars->9->428", "default.handlebars->27->1354", - "default.handlebars->27->1388" + "default.handlebars->27->1389" ] }, { @@ -16472,7 +16479,7 @@ "default-mobile.handlebars->9->409", "default-mobile.handlebars->9->427", "default.handlebars->27->1353", - "default.handlebars->27->1387" + "default.handlebars->27->1388" ] }, { @@ -16495,7 +16502,7 @@ "en": "Manage Recordings", "nl": "Beheeer opnames", "xloc": [ - "default.handlebars->27->1607" + "default.handlebars->27->1608" ] }, { @@ -16529,7 +16536,7 @@ "ru": "Управление группами пользователя", "zh-chs": "管理用戶組", "xloc": [ - "default.handlebars->27->1606" + "default.handlebars->27->1607" ] }, { @@ -16546,7 +16553,7 @@ "ru": "Управление пользователями", "zh-chs": "管理用戶", "xloc": [ - "default.handlebars->27->1605", + "default.handlebars->27->1606", "default.handlebars->27->657" ] }, @@ -16686,7 +16693,7 @@ "ru": "Менеджер", "zh-chs": "經理", "xloc": [ - "default.handlebars->27->1528" + "default.handlebars->27->1529" ] }, { @@ -16789,7 +16796,7 @@ "ru": "Достигнуто максимальное число сессий", "zh-chs": "達到的會話數上限", "xloc": [ - "default.handlebars->27->1851" + "default.handlebars->27->1853" ] }, { @@ -16843,7 +16850,7 @@ "ru": "Мегабайт", "zh-chs": "兆字節", "xloc": [ - "default.handlebars->27->1877" + "default.handlebars->27->1879" ] }, { @@ -16861,7 +16868,7 @@ "zh-chs": "記憶", "xloc": [ "default-mobile.handlebars->9->381", - "default.handlebars->27->1868", + "default.handlebars->27->1870", "default.handlebars->27->925", "default.handlebars->container->column_l->p40->3->1->p40type->3" ] @@ -17000,7 +17007,7 @@ "ru": "Трафик MeshAgent", "zh-chs": "MeshAgent流量", "xloc": [ - "default.handlebars->27->1889" + "default.handlebars->27->1891" ] }, { @@ -17017,7 +17024,7 @@ "ru": "Обновление MeshAgent", "zh-chs": "MeshAgent更新", "xloc": [ - "default.handlebars->27->1890" + "default.handlebars->27->1892" ] }, { @@ -17120,7 +17127,7 @@ "ru": "Соединения сервера MeshCentral", "zh-chs": "MeshCentral服務器對等", "xloc": [ - "default.handlebars->27->1888" + "default.handlebars->27->1890" ] }, { @@ -17384,7 +17391,7 @@ "ru": "Диспетчер сообщения", "zh-chs": "郵件調度程序", "xloc": [ - "default.handlebars->27->1886" + "default.handlebars->27->1888" ] }, { @@ -17533,7 +17540,7 @@ "ru": "Еще", "zh-chs": "更多", "xloc": [ - "default.handlebars->27->1914" + "default.handlebars->27->1916" ] }, { @@ -17609,7 +17616,7 @@ "en": "Multiplexor", "nl": "Multiplexor", "xloc": [ - "default.handlebars->27->1829" + "default.handlebars->27->1831" ] }, { @@ -17880,12 +17887,12 @@ "default.handlebars->27->1206", "default.handlebars->27->1237", "default.handlebars->27->1320", - "default.handlebars->27->1510", - "default.handlebars->27->1613", - "default.handlebars->27->1629", - "default.handlebars->27->1636", - "default.handlebars->27->1669", - "default.handlebars->27->1688", + "default.handlebars->27->1511", + "default.handlebars->27->1615", + "default.handlebars->27->1631", + "default.handlebars->27->1638", + "default.handlebars->27->1671", + "default.handlebars->27->1690", "default.handlebars->27->523", "default.handlebars->27->76", "default.handlebars->27->784", @@ -17928,7 +17935,7 @@ "ru": "Имя1, Имя2, Имя3", "zh-chs": "名稱1,名稱2,名稱3", "xloc": [ - "default.handlebars->27->1597" + "default.handlebars->27->1598" ] }, { @@ -18103,7 +18110,7 @@ "xloc": [ "default-mobile.handlebars->9->120", "default-mobile.handlebars->9->299", - "default.handlebars->27->1469", + "default.handlebars->27->1470", "default.handlebars->27->823", "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3", "default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3" @@ -18246,7 +18253,7 @@ "ru": "Нет рабочего стола", "zh-chs": "沒有桌面", "xloc": [ - "default.handlebars->27->1395", + "default.handlebars->27->1396", "default.handlebars->27->645", "default.handlebars->27->664" ] @@ -18282,8 +18289,8 @@ "ru": "События не найдены", "zh-chs": "找不到活動", "xloc": [ - "default.handlebars->27->1486", - "default.handlebars->27->1803", + "default.handlebars->27->1487", + "default.handlebars->27->1805", "default.handlebars->27->857" ] }, @@ -18320,7 +18327,7 @@ "zh-chs": "沒有文件", "xloc": [ "default-mobile.handlebars->9->436", - "default.handlebars->27->1397", + "default.handlebars->27->1398", "default.handlebars->27->642", "default.handlebars->27->661" ] @@ -18359,7 +18366,7 @@ "default-mobile.handlebars->9->416", "default-mobile.handlebars->9->437", "default.handlebars->27->1361", - "default.handlebars->27->1398" + "default.handlebars->27->1399" ] }, { @@ -18427,7 +18434,7 @@ "ru": "Нет членов", "zh-chs": "沒有會員", "xloc": [ - "default.handlebars->27->1651" + "default.handlebars->27->1653" ] }, { @@ -18444,7 +18451,7 @@ "ru": "Запретить создание групп устройств", "zh-chs": "沒有新的設備組", "xloc": [ - "default.handlebars->27->1609" + "default.handlebars->27->1610" ] }, { @@ -18484,7 +18491,7 @@ "default-mobile.handlebars->9->399", "default-mobile.handlebars->9->442", "default.handlebars->27->1220", - "default.handlebars->27->1403", + "default.handlebars->27->1404", "default.handlebars->27->654", "default.handlebars->27->673" ] @@ -18523,7 +18530,7 @@ "zh-chs": "沒有終端", "xloc": [ "default-mobile.handlebars->9->435", - "default.handlebars->27->1396", + "default.handlebars->27->1397", "default.handlebars->27->641", "default.handlebars->27->660" ] @@ -18560,7 +18567,7 @@ "ru": "Нет инструментов (MeshCmd/Router)", "zh-chs": "沒有工具(MeshCmd /路由器)", "xloc": [ - "default.handlebars->27->1610" + "default.handlebars->27->1611" ] }, { @@ -18577,8 +18584,8 @@ "ru": "Нет общих групп устройств", "zh-chs": "沒有共同的設備組", "xloc": [ - "default.handlebars->27->1657", - "default.handlebars->27->1775" + "default.handlebars->27->1659", + "default.handlebars->27->1777" ] }, { @@ -18674,8 +18681,8 @@ "ru": "Нет общих устройств", "zh-chs": "沒有共同的設備", "xloc": [ - "default.handlebars->27->1663", - "default.handlebars->27->1787" + "default.handlebars->27->1665", + "default.handlebars->27->1789" ] }, { @@ -18692,7 +18699,7 @@ "ru": "В группе нет устройств.", "zh-chs": "該設備組中沒有設備。", "xloc": [ - "default.handlebars->27->1446" + "default.handlebars->27->1447" ] }, { @@ -18762,7 +18769,7 @@ "ru": "Группы не найдены.", "zh-chs": "找不到群組。", "xloc": [ - "default.handlebars->27->1612" + "default.handlebars->27->1614" ] }, { @@ -18855,7 +18862,7 @@ "en": "No recordings.", "nl": "Geen opnames.", "xloc": [ - "default.handlebars->27->1805" + "default.handlebars->27->1807" ] }, { @@ -18872,7 +18879,7 @@ "ru": "Нет серверных прав", "zh-chs": "沒有服務器權限", "xloc": [ - "default.handlebars->27->1683" + "default.handlebars->27->1685" ] }, { @@ -18889,7 +18896,7 @@ "ru": "Нет членства в группах пользователей", "zh-chs": "沒有用戶組成員身份", "xloc": [ - "default.handlebars->27->1781" + "default.handlebars->27->1783" ] }, { @@ -18906,7 +18913,7 @@ "ru": "Пользователи не найдены.", "zh-chs": "未找到相應的用戶。", "xloc": [ - "default.handlebars->27->1518" + "default.handlebars->27->1519" ] }, { @@ -18989,15 +18996,15 @@ "default.handlebars->27->1255", "default.handlebars->27->1260", "default.handlebars->27->1262", - "default.handlebars->27->1437", - "default.handlebars->27->1456", - "default.handlebars->27->1494", - "default.handlebars->27->1633", + "default.handlebars->27->1438", + "default.handlebars->27->1457", + "default.handlebars->27->1495", "default.handlebars->27->1635", - "default.handlebars->27->1702", - "default.handlebars->27->1711", - "default.handlebars->27->1715", - "default.handlebars->27->1727", + "default.handlebars->27->1637", + "default.handlebars->27->1704", + "default.handlebars->27->1713", + "default.handlebars->27->1717", + "default.handlebars->27->1729", "default.handlebars->27->174", "default.handlebars->27->190", "default.handlebars->27->191", @@ -19132,8 +19139,8 @@ "ru": "Не подключен", "zh-chs": "未連接", "xloc": [ - "default.handlebars->27->1433", - "default.handlebars->27->1441" + "default.handlebars->27->1434", + "default.handlebars->27->1442" ] }, { @@ -19158,7 +19165,7 @@ "en": "Not on server", "nl": "Niet op de server", "xloc": [ - "default.handlebars->27->1821" + "default.handlebars->27->1823" ] }, { @@ -19175,8 +19182,8 @@ "ru": "Не задано", "zh-chs": "沒有設置", "xloc": [ - "default.handlebars->27->1689", - "default.handlebars->27->1690" + "default.handlebars->27->1691", + "default.handlebars->27->1692" ] }, { @@ -19193,7 +19200,7 @@ "ru": "не подтверждено", "zh-chs": "未經審核的", "xloc": [ - "default.handlebars->27->1757" + "default.handlebars->27->1759" ] }, { @@ -19211,7 +19218,7 @@ "zh-chs": "筆記", "xloc": [ "default.handlebars->27->1270", - "default.handlebars->27->1735", + "default.handlebars->27->1737", "default.handlebars->27->592", "default.handlebars->27->650", "default.handlebars->27->669", @@ -19250,7 +19257,7 @@ "zh-chs": "通知設置", "xloc": [ "default.handlebars->27->1181", - "default.handlebars->27->1432", + "default.handlebars->27->1433", "default.handlebars->container->column_l->p2->p2info->p2AccountActions->3->10" ] }, @@ -19268,7 +19275,7 @@ "ru": "Уведомления также должны быть включены в настройках учетной записи.", "zh-chs": "通知設置還必須在帳戶設置中啟用。", "xloc": [ - "default.handlebars->27->1428" + "default.handlebars->27->1429" ] }, { @@ -19319,7 +19326,7 @@ "ru": "Уведомить", "zh-chs": "通知", "xloc": [ - "default.handlebars->27->1741" + "default.handlebars->27->1743" ] }, { @@ -19355,7 +19362,7 @@ "ru": "Уведомить {0}", "zh-chs": "通知{0}", "xloc": [ - "default.handlebars->27->1557" + "default.handlebars->27->1558" ] }, { @@ -19433,7 +19440,7 @@ "ru": "Произошло в {0}", "zh-chs": "發生在{0}", "xloc": [ - "default.handlebars->27->1835" + "default.handlebars->27->1837" ] }, { @@ -19450,7 +19457,7 @@ "ru": "Оффлайн пользователи", "zh-chs": "離線用戶", "xloc": [ - "default.handlebars->27->1515" + "default.handlebars->27->1516" ] }, { @@ -19475,7 +19482,7 @@ "en": "One Day", "nl": "één dag", "xloc": [ - "default.handlebars->27->1491" + "default.handlebars->27->1492" ] }, { @@ -19518,7 +19525,7 @@ "ru": "Онлайн пользователи", "zh-chs": "在線用戶", "xloc": [ - "default.handlebars->27->1514" + "default.handlebars->27->1515" ] }, { @@ -19684,8 +19691,8 @@ "zh-chs": "運作方式", "xloc": [ "default-mobile.handlebars->9->264", - "default.handlebars->27->1541", - "default.handlebars->27->1620", + "default.handlebars->27->1542", + "default.handlebars->27->1622", "default.handlebars->27->431", "default.handlebars->27->451", "default.handlebars->27->690" @@ -19861,7 +19868,7 @@ "ru": "Частично", "zh-chs": "部分的", "xloc": [ - "default.handlebars->27->1529" + "default.handlebars->27->1530" ] }, { @@ -19925,7 +19932,7 @@ "ru": "Частичные права", "zh-chs": "部分權利", "xloc": [ - "default.handlebars->27->1686" + "default.handlebars->27->1688" ] }, { @@ -19960,12 +19967,12 @@ "zh-chs": "密碼", "xloc": [ "default-mobile.handlebars->9->269", - "default.handlebars->27->1585", "default.handlebars->27->1586", - "default.handlebars->27->1707", + "default.handlebars->27->1587", "default.handlebars->27->1709", - "default.handlebars->27->1760", - "default.handlebars->27->1761", + "default.handlebars->27->1711", + "default.handlebars->27->1762", + "default.handlebars->27->1763", "default.handlebars->27->274", "default.handlebars->27->305", "default.handlebars->27->700", @@ -20076,7 +20083,7 @@ "ru": "Подсказка пароля", "zh-chs": "密碼提示", "xloc": [ - "default.handlebars->27->1762" + "default.handlebars->27->1764" ] }, { @@ -20199,7 +20206,7 @@ "default-mobile.handlebars->9->312", "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->3", "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->3", - "default.handlebars->27->1478", + "default.handlebars->27->1479", "default.handlebars->27->814", "default.handlebars->27->836", "default.handlebars->container->column_l->p12->termTable->1->1->6->1->3", @@ -20370,8 +20377,8 @@ "zh-chs": "權限", "xloc": [ "default-mobile.handlebars->9->445", - "default.handlebars->27->1406", - "default.handlebars->27->1513" + "default.handlebars->27->1407", + "default.handlebars->27->1514" ] }, { @@ -20405,7 +20412,7 @@ "default-mobile.handlebars->9->65", "default-mobile.handlebars->9->67", "default.handlebars->27->159", - "default.handlebars->27->1752", + "default.handlebars->27->1754", "default.handlebars->27->951", "default.handlebars->27->954" ] @@ -20420,7 +20427,7 @@ "nl": "Telefoonnummer", "zh-chs": "电话号码", "xloc": [ - "default.handlebars->27->1701" + "default.handlebars->27->1703" ] }, { @@ -20434,7 +20441,7 @@ "zh-chs": "电话号码:", "xloc": [ "default-mobile.handlebars->9->66", - "default.handlebars->27->1751", + "default.handlebars->27->1753", "default.handlebars->27->953" ] }, @@ -20571,7 +20578,7 @@ "zh-chs": "插件動作", "xloc": [ "default.handlebars->27->185", - "default.handlebars->27->1911" + "default.handlebars->27->1913" ] }, { @@ -20804,7 +20811,7 @@ "ru": "Состояния питания", "zh-chs": "電力國", "xloc": [ - "default.handlebars->27->1439", + "default.handlebars->27->1440", "default.handlebars->container->column_l->p21->3->1->meshPowerChartDiv->1" ] }, @@ -20889,7 +20896,7 @@ "en": "Present on server", "nl": "Aanwezig op de server", "xloc": [ - "default.handlebars->27->1820" + "default.handlebars->27->1822" ] }, { @@ -21005,7 +21012,7 @@ "ru": "Протокол", "zh-chs": "協議", "xloc": [ - "default.handlebars->27->1818", + "default.handlebars->27->1820", "player.handlebars->3->16" ] }, @@ -21056,7 +21063,7 @@ "zh-chs": "公開連結", "xloc": [ "default-mobile.handlebars->9->115", - "default.handlebars->27->1463" + "default.handlebars->27->1464" ] }, { @@ -21313,7 +21320,7 @@ "ru": "RSS", "zh-chs": "的RSS", "xloc": [ - "default.handlebars->27->1881" + "default.handlebars->27->1883" ] }, { @@ -21330,7 +21337,7 @@ "ru": "Случайный пароль.", "zh-chs": "隨機化密碼。", "xloc": [ - "default.handlebars->27->1587" + "default.handlebars->27->1588" ] }, { @@ -21371,9 +21378,9 @@ "en": "Real Name", "nl": "Echte naam", "xloc": [ - "default.handlebars->27->1698", "default.handlebars->27->1700", - "default.handlebars->27->1753" + "default.handlebars->27->1702", + "default.handlebars->27->1755" ] }, { @@ -21390,7 +21397,7 @@ "ru": "Области", "zh-chs": "境界", "xloc": [ - "default.handlebars->27->1596" + "default.handlebars->27->1597" ] }, { @@ -21417,7 +21424,7 @@ "en": "Recording Details", "nl": "Opname details", "xloc": [ - "default.handlebars->27->1832" + "default.handlebars->27->1834" ] }, { @@ -21443,7 +21450,7 @@ "xloc": [ "default-mobile.handlebars->9->121", "default-mobile.handlebars->9->300", - "default.handlebars->27->1470", + "default.handlebars->27->1471", "default.handlebars->27->824" ] }, @@ -21541,7 +21548,7 @@ "ru": "Число ретрансляций", "zh-chs": "中繼計數", "xloc": [ - "default.handlebars->27->1863" + "default.handlebars->27->1865" ] }, { @@ -21558,7 +21565,7 @@ "ru": "Ошибки ретранслятора", "zh-chs": "中繼錯誤", "xloc": [ - "default.handlebars->27->1856" + "default.handlebars->27->1858" ] }, { @@ -21575,8 +21582,8 @@ "ru": "Сессии ретранслятора", "zh-chs": "接力會議", "xloc": [ - "default.handlebars->27->1862", - "default.handlebars->27->1875" + "default.handlebars->27->1864", + "default.handlebars->27->1877" ] }, { @@ -21707,7 +21714,7 @@ "default-mobile.handlebars->9->411", "default-mobile.handlebars->9->429", "default.handlebars->27->1355", - "default.handlebars->27->1389" + "default.handlebars->27->1390" ] }, { @@ -21804,7 +21811,7 @@ "default-mobile.handlebars->9->412", "default-mobile.handlebars->9->434", "default.handlebars->27->1356", - "default.handlebars->27->1394" + "default.handlebars->27->1395" ] }, { @@ -21897,8 +21904,8 @@ "nl": "Apparaatgroepmachtigingen verwijderen", "zh-chs": "删除设备组权限", "xloc": [ - "default.handlebars->27->1667", - "default.handlebars->27->1801" + "default.handlebars->27->1669", + "default.handlebars->27->1803" ] }, { @@ -21912,8 +21919,8 @@ "nl": "Apparaatmachtigingen verwijderen", "zh-chs": "删除设备权限", "xloc": [ - "default.handlebars->27->1665", - "default.handlebars->27->1788" + "default.handlebars->27->1667", + "default.handlebars->27->1790" ] }, { @@ -21941,7 +21948,7 @@ "nl": "Lidmaatschap van gebruikersgroep verwijderen", "zh-chs": "删除用户组成员身份", "xloc": [ - "default.handlebars->27->1797" + "default.handlebars->27->1799" ] }, { @@ -21955,8 +21962,8 @@ "nl": "Gebruikersgroepmachtigingen verwijderen", "zh-chs": "删除用户组权限", "xloc": [ - "default.handlebars->27->1411", - "default.handlebars->27->1793" + "default.handlebars->27->1412", + "default.handlebars->27->1795" ] }, { @@ -21970,7 +21977,7 @@ "nl": "Gebruikerslidmaatschap verwijderen", "zh-chs": "删除用户成员资格", "xloc": [ - "default.handlebars->27->1675" + "default.handlebars->27->1677" ] }, { @@ -21984,8 +21991,8 @@ "nl": "Gebruikersmachtigingen verwijderen", "zh-chs": "删除用户权限", "xloc": [ - "default.handlebars->27->1409", - "default.handlebars->27->1790" + "default.handlebars->27->1410", + "default.handlebars->27->1792" ] }, { @@ -22002,7 +22009,7 @@ "ru": "Удалить все двухфакторные аутентификации.", "zh-chs": "刪除所有第二因素驗證。", "xloc": [ - "default.handlebars->27->1765" + "default.handlebars->27->1767" ] }, { @@ -22019,7 +22026,7 @@ "ru": "Удалить все прошлые события для этого userid.", "zh-chs": "刪除此用戶標識的所有先前事件。", "xloc": [ - "default.handlebars->27->1588" + "default.handlebars->27->1589" ] }, { @@ -22107,7 +22114,7 @@ "ru": "Удалить этого пользователя", "zh-chs": "删除该用户", "xloc": [ - "default.handlebars->27->1743" + "default.handlebars->27->1745" ] }, { @@ -22124,7 +22131,7 @@ "ru": "Удалить членство пользователя в группе", "zh-chs": "刪除用戶組成員身份", "xloc": [ - "default.handlebars->27->1779" + "default.handlebars->27->1781" ] }, { @@ -22138,7 +22145,7 @@ "nl": "Gebruikersrechten voor dit apparaat verwijderen", "zh-chs": "删除此设备的用户组权限", "xloc": [ - "default.handlebars->27->1661" + "default.handlebars->27->1663" ] }, { @@ -22155,7 +22162,7 @@ "ru": "Удалить права группы пользователей для этой группы устройств", "zh-chs": "刪除該設備組的用戶組權限", "xloc": [ - "default.handlebars->27->1655", + "default.handlebars->27->1657", "default.handlebars->27->634" ] }, @@ -22174,9 +22181,9 @@ "zh-chs": "刪除此設備組的用戶權限", "xloc": [ "default.handlebars->27->1287", - "default.handlebars->27->1649", - "default.handlebars->27->1773", - "default.handlebars->27->1785", + "default.handlebars->27->1651", + "default.handlebars->27->1775", + "default.handlebars->27->1787", "default.handlebars->27->635" ] }, @@ -22198,7 +22205,7 @@ "default-mobile.handlebars->9->304", "default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1", "default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1", - "default.handlebars->27->1474", + "default.handlebars->27->1475", "default.handlebars->27->489", "default.handlebars->27->828", "default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3", @@ -22210,14 +22217,14 @@ "en": "Report Day", "nl": "Dag rapport", "xloc": [ - "default.handlebars->27->1492" + "default.handlebars->27->1493" ] }, { "en": "Report Type", "nl": "Rapporttype", "xloc": [ - "default.handlebars->27->1487" + "default.handlebars->27->1488" ] }, { @@ -22252,8 +22259,8 @@ "zh-chs": "要求:{0}。", "xloc": [ "default-mobile.handlebars->9->89", - "default.handlebars->27->1593", - "default.handlebars->27->1763" + "default.handlebars->27->1594", + "default.handlebars->27->1765" ] }, { @@ -22495,7 +22502,7 @@ "ru": "Ограничения", "zh-chs": "限制條件", "xloc": [ - "default.handlebars->27->1687" + "default.handlebars->27->1689" ] }, { @@ -22565,7 +22572,7 @@ "xloc": [ "default-mobile.handlebars->9->107", "default-mobile.handlebars->9->294", - "default.handlebars->27->1447", + "default.handlebars->27->1448", "default.handlebars->27->818" ] }, @@ -22755,8 +22762,8 @@ "nl": "SMS", "zh-chs": "短信", "xloc": [ - "default.handlebars->27->1732", - "default.handlebars->27->1737", + "default.handlebars->27->1734", + "default.handlebars->27->1739", "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" ] @@ -22771,7 +22778,7 @@ "nl": "SMS geschikt telefoonnummer voor deze gebruiker.", "zh-chs": "此用户的短信功能电话号码。", "xloc": [ - "default.handlebars->27->1749" + "default.handlebars->27->1751" ] }, { @@ -23183,7 +23190,7 @@ "xloc": [ "default-mobile.handlebars->9->270", "default-mobile.handlebars->9->360", - "default.handlebars->27->1733", + "default.handlebars->27->1735", "default.handlebars->27->275", "default.handlebars->27->701", "default.handlebars->27->904" @@ -23203,7 +23210,7 @@ "ru": "Ключ безопасности", "zh-chs": "安全密鑰", "xloc": [ - "default.handlebars->27->1730" + "default.handlebars->27->1732" ] }, { @@ -23237,9 +23244,9 @@ "ru": "Выбрать все", "zh-chs": "全選", "xloc": [ - "default.handlebars->27->1466", - "default.handlebars->27->1537", - "default.handlebars->27->1618", + "default.handlebars->27->1467", + "default.handlebars->27->1538", + "default.handlebars->27->1620", "default.handlebars->27->427", "default.handlebars->27->820", "default.handlebars->27->822", @@ -23265,9 +23272,9 @@ "ru": "Очистить все", "zh-chs": "選擇無", "xloc": [ - "default.handlebars->27->1465", - "default.handlebars->27->1536", - "default.handlebars->27->1617", + "default.handlebars->27->1466", + "default.handlebars->27->1537", + "default.handlebars->27->1619", "default.handlebars->27->426", "default.handlebars->27->821", "default.handlebars->meshContextMenu->cxselectnone" @@ -23352,8 +23359,8 @@ "nl": "Selecteer een bewerking die u op alle geselecteerde gebruikers wilt uitvoeren.", "zh-chs": "选择要对所有选定用户执行的操作。", "xloc": [ - "default.handlebars->27->1540", - "default.handlebars->27->1619" + "default.handlebars->27->1541", + "default.handlebars->27->1621" ] }, { @@ -23407,7 +23414,7 @@ "zh-chs": "僅自我事件", "xloc": [ "default-mobile.handlebars->9->439", - "default.handlebars->27->1400" + "default.handlebars->27->1401" ] }, { @@ -23433,7 +23440,7 @@ "en": "Send Email", "nl": "E-mail verzenden", "xloc": [ - "default.handlebars->27->1551" + "default.handlebars->27->1552" ] }, { @@ -23481,7 +23488,7 @@ "nl": "verstuur SMS", "zh-chs": "发送短信", "xloc": [ - "default.handlebars->27->1549" + "default.handlebars->27->1550" ] }, { @@ -23494,7 +23501,7 @@ "nl": "Stuur een SMS bericht naar deze gebruiker", "zh-chs": "发送短信给该用户", "xloc": [ - "default.handlebars->27->1738" + "default.handlebars->27->1740" ] }, { @@ -23502,7 +23509,7 @@ "nl": "Stuur een e-mailbericht naar deze gebruiker", "fr": "Envoyer un Mail à cet utilisateur", "xloc": [ - "default.handlebars->27->1740" + "default.handlebars->27->1742" ] }, { @@ -23519,7 +23526,7 @@ "ru": "Отправить уведомление всем пользователям этой группы.", "zh-chs": "向該組中的所有用戶發送通知。", "xloc": [ - "default.handlebars->27->1646" + "default.handlebars->27->1648" ] }, { @@ -23536,7 +23543,7 @@ "ru": "Отправить текстовое уведомление этому пользователю.", "zh-chs": "向該用戶發送文本通知。", "xloc": [ - "default.handlebars->27->1552" + "default.handlebars->27->1553" ] }, { @@ -23552,7 +23559,7 @@ "ru": "Отправить письмо пользователю", "zh-chs": "发送电子邮件给用户", "xloc": [ - "default.handlebars->27->1532" + "default.handlebars->27->1533" ] }, { @@ -23586,7 +23593,7 @@ "ru": "Отправить приглашение по email.", "zh-chs": "發送邀請電子郵件。", "xloc": [ - "default.handlebars->27->1592" + "default.handlebars->27->1593" ] }, { @@ -23652,7 +23659,7 @@ "ru": "Отправить уведомление пользователю", "zh-chs": "發送用戶通知", "xloc": [ - "default.handlebars->27->1742" + "default.handlebars->27->1744" ] }, { @@ -23704,7 +23711,7 @@ "ru": "Резервное копирование сервера", "zh-chs": "服務器備份", "xloc": [ - "default.handlebars->27->1602" + "default.handlebars->27->1603" ] }, { @@ -23721,7 +23728,7 @@ "ru": "Сертификат сервера", "zh-chs": "服務器證書", "xloc": [ - "default.handlebars->27->1891" + "default.handlebars->27->1893" ] }, { @@ -23738,7 +23745,7 @@ "ru": "База данных сервера", "zh-chs": "服務器數據庫", "xloc": [ - "default.handlebars->27->1892" + "default.handlebars->27->1894" ] }, { @@ -23758,8 +23765,8 @@ "default-mobile.handlebars->9->418", "default-mobile.handlebars->9->431", "default.handlebars->27->1363", - "default.handlebars->27->1391", - "default.handlebars->27->1599", + "default.handlebars->27->1392", + "default.handlebars->27->1600", "default.handlebars->27->648", "default.handlebars->27->667" ] @@ -23778,8 +23785,8 @@ "ru": "Разрешения сервера", "zh-chs": "服務器權限", "xloc": [ - "default.handlebars->27->1524", - "default.handlebars->27->1611" + "default.handlebars->27->1525", + "default.handlebars->27->1613" ] }, { @@ -23796,7 +23803,7 @@ "ru": "Квота сервера", "zh-chs": "服務器配額", "xloc": [ - "default.handlebars->27->1704" + "default.handlebars->27->1706" ] }, { @@ -23813,7 +23820,7 @@ "ru": "Восстановление сервера", "zh-chs": "服務器還原", "xloc": [ - "default.handlebars->27->1603" + "default.handlebars->27->1604" ] }, { @@ -23830,7 +23837,7 @@ "ru": "Права", "zh-chs": "服務器權限", "xloc": [ - "default.handlebars->27->1703" + "default.handlebars->27->1705" ] }, { @@ -23847,7 +23854,7 @@ "ru": "Состояние сервера", "zh-chs": "服務器狀態", "xloc": [ - "default.handlebars->27->1842" + "default.handlebars->27->1844" ] }, { @@ -23881,7 +23888,7 @@ "ru": "Трассировка сервера", "zh-chs": "服務器跟踪", "xloc": [ - "default.handlebars->27->1902" + "default.handlebars->27->1904" ] }, { @@ -23898,7 +23905,7 @@ "ru": "Обновление сервера", "zh-chs": "服務器更新", "xloc": [ - "default.handlebars->27->1604" + "default.handlebars->27->1605" ] }, { @@ -24020,7 +24027,7 @@ "ru": "ServerStats.csv", "zh-chs": "ServerStats.csv", "xloc": [ - "default.handlebars->27->1883" + "default.handlebars->27->1885" ] }, { @@ -24061,7 +24068,7 @@ "en": "Session", "nl": "Sessie", "xloc": [ - "default.handlebars->27->1806" + "default.handlebars->27->1808" ] }, { @@ -24452,32 +24459,32 @@ "en": "Show for 1 minute", "nl": "Toon gedurende 1 minuut", "xloc": [ - "default.handlebars->27->1555", - "default.handlebars->27->1578" + "default.handlebars->27->1556", + "default.handlebars->27->1579" ] }, { "en": "Show for 10 seconds", "nl": "Toon gedurende 10 seconden", "xloc": [ - "default.handlebars->27->1554", - "default.handlebars->27->1577" + "default.handlebars->27->1555", + "default.handlebars->27->1578" ] }, { "en": "Show for 5 minutes", "nl": "Toon gedurende 5 minuten", "xloc": [ - "default.handlebars->27->1556", - "default.handlebars->27->1579" + "default.handlebars->27->1557", + "default.handlebars->27->1580" ] }, { "en": "Show message until dismissed by user", "nl": "Toon bericht totdat het door de gebruiker wordt afgewezen", "xloc": [ - "default.handlebars->27->1553", - "default.handlebars->27->1576" + "default.handlebars->27->1554", + "default.handlebars->27->1577" ] }, { @@ -24646,8 +24653,8 @@ "ru": "Размер", "zh-chs": "尺寸", "xloc": [ - "default.handlebars->27->1809", - "default.handlebars->27->1824", + "default.handlebars->27->1811", + "default.handlebars->27->1826", "default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSize" ] }, @@ -25462,8 +25469,8 @@ "en": "Start Time", "nl": "Start tijd", "xloc": [ - "default.handlebars->27->1807", - "default.handlebars->27->1826", + "default.handlebars->27->1809", + "default.handlebars->27->1828", "default.handlebars->27->767" ] }, @@ -25516,8 +25523,8 @@ "ru": "Статус", "zh-chs": "狀態", "xloc": [ - "default.handlebars->27->1756", - "default.handlebars->27->1819", + "default.handlebars->27->1758", + "default.handlebars->27->1821", "default.handlebars->container->column_l->p42->p42tbl->1->0->7" ] }, @@ -25617,7 +25624,7 @@ "ru": "Превышен лимит места для хранения", "zh-chs": "儲存空間超過", "xloc": [ - "default.handlebars->27->1451" + "default.handlebars->27->1452" ] }, { @@ -25661,7 +25668,7 @@ "en": "Subject", "nl": "Onderwerp", "xloc": [ - "default.handlebars->27->1550" + "default.handlebars->27->1551" ] }, { @@ -26086,7 +26093,7 @@ "xloc": [ "default-mobile.handlebars->9->164", "default.handlebars->27->1330", - "default.handlebars->27->1813", + "default.handlebars->27->1815", "default.handlebars->27->233", "default.handlebars->27->499", "default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevTerminal", @@ -26125,7 +26132,7 @@ "zh-chs": "終端通知", "xloc": [ "default.handlebars->27->1250", - "default.handlebars->27->1722", + "default.handlebars->27->1724", "default.handlebars->27->571" ] }, @@ -26144,7 +26151,7 @@ "zh-chs": "終端提示", "xloc": [ "default.handlebars->27->1249", - "default.handlebars->27->1721", + "default.handlebars->27->1723", "default.handlebars->27->570" ] }, @@ -26288,7 +26295,7 @@ "ru": "На данный момент уведомлений нет", "zh-chs": "目前沒有任何通知", "xloc": [ - "default.handlebars->27->1834" + "default.handlebars->27->1836" ] }, { @@ -26575,7 +26582,7 @@ "en": "Time Span", "nl": "Tijdspanne", "xloc": [ - "default.handlebars->27->1489" + "default.handlebars->27->1490" ] }, { @@ -27489,7 +27496,7 @@ "zh-chs": "卸載", "xloc": [ "default-mobile.handlebars->9->441", - "default.handlebars->27->1402", + "default.handlebars->27->1403", "default.handlebars->27->653", "default.handlebars->27->672" ] @@ -27559,9 +27566,9 @@ "default.handlebars->27->1227", "default.handlebars->27->1228", "default.handlebars->27->13", - "default.handlebars->27->1796", - "default.handlebars->27->1811", - "default.handlebars->27->1812", + "default.handlebars->27->1798", + "default.handlebars->27->1813", + "default.handlebars->27->1814", "default.handlebars->27->41", "default.handlebars->27->42", "default.handlebars->27->425", @@ -27601,7 +27608,7 @@ "ru": "Неизвестное действие", "zh-chs": "未知動作", "xloc": [ - "default.handlebars->27->1848" + "default.handlebars->27->1850" ] }, { @@ -27618,8 +27625,8 @@ "ru": "Неизвестное устройство", "zh-chs": "未知設備", "xloc": [ - "default.handlebars->27->1660", - "default.handlebars->27->1784" + "default.handlebars->27->1662", + "default.handlebars->27->1786" ] }, { @@ -27636,9 +27643,9 @@ "ru": "Неизвестная группа устройств", "zh-chs": "未知設備組", "xloc": [ - "default.handlebars->27->1654", - "default.handlebars->27->1772", - "default.handlebars->27->1852" + "default.handlebars->27->1656", + "default.handlebars->27->1774", + "default.handlebars->27->1854" ] }, { @@ -27655,7 +27662,7 @@ "ru": "Неизвестная группа", "zh-chs": "未知群組", "xloc": [ - "default.handlebars->27->1844" + "default.handlebars->27->1846" ] }, { @@ -27690,7 +27697,7 @@ "ru": "Неизвестная группа пользователей", "zh-chs": "未知用戶組", "xloc": [ - "default.handlebars->27->1778" + "default.handlebars->27->1780" ] }, { @@ -27741,7 +27748,7 @@ "nl": "Account ontgrendelen", "zh-chs": "解锁帐号", "xloc": [ - "default.handlebars->27->1543" + "default.handlebars->27->1544" ] }, { @@ -27779,7 +27786,7 @@ "ru": "Актуально", "zh-chs": "最新", "xloc": [ - "default.handlebars->27->1909" + "default.handlebars->27->1911" ] }, { @@ -27820,8 +27827,8 @@ "default-mobile.handlebars->9->126", "default-mobile.handlebars->9->305", "default-mobile.handlebars->9->323", - "default.handlebars->27->1475", - "default.handlebars->27->1483", + "default.handlebars->27->1476", + "default.handlebars->27->1484", "default.handlebars->27->829", "default.handlebars->27->852", "default.handlebars->27->855", @@ -27910,7 +27917,7 @@ "ru": "Загрузка перезапишет 1 файл. Продолжить?", "zh-chs": "上傳將覆蓋1個文件。繼續?", "xloc": [ - "default.handlebars->27->1484", + "default.handlebars->27->1485", "default.handlebars->27->853" ] }, @@ -27928,7 +27935,7 @@ "ru": "Загрузка перезапишет {0} файлов. Продолжить?", "zh-chs": "上傳將覆蓋{0}個文件。繼續?", "xloc": [ - "default.handlebars->27->1485", + "default.handlebars->27->1486", "default.handlebars->27->854" ] }, @@ -28029,8 +28036,8 @@ "ru": "Использовано", "zh-chs": "用過的", "xloc": [ - "default.handlebars->27->1838", - "default.handlebars->27->1840" + "default.handlebars->27->1840", + "default.handlebars->27->1842" ] }, { @@ -28048,10 +28055,10 @@ "zh-chs": "用戶", "xloc": [ "default.handlebars->27->1288", - "default.handlebars->27->1496", - "default.handlebars->27->1525", - "default.handlebars->27->1650", - "default.handlebars->27->1831", + "default.handlebars->27->1497", + "default.handlebars->27->1526", + "default.handlebars->27->1652", + "default.handlebars->27->1833", "default.handlebars->27->211", "default.handlebars->27->637" ] @@ -28070,7 +28077,7 @@ "ru": "Пользователь + Файлы", "zh-chs": "用戶+文件", "xloc": [ - "default.handlebars->27->1526" + "default.handlebars->27->1527" ] }, { @@ -28087,10 +28094,10 @@ "ru": "Импорт учетной записи пользователя", "zh-chs": "用戶帳戶導入", "xloc": [ - "default.handlebars->27->1559", "default.handlebars->27->1560", - "default.handlebars->27->1562", - "default.handlebars->27->1564" + "default.handlebars->27->1561", + "default.handlebars->27->1563", + "default.handlebars->27->1565" ] }, { @@ -28107,7 +28114,7 @@ "ru": "Учетные записи пользователей", "zh-chs": "用戶帳號", "xloc": [ - "default.handlebars->27->1857" + "default.handlebars->27->1859" ] }, { @@ -28144,7 +28151,7 @@ "zh-chs": "用戶同意", "xloc": [ "default.handlebars->27->1256", - "default.handlebars->27->1728", + "default.handlebars->27->1730", "default.handlebars->27->577" ] }, @@ -28164,9 +28171,9 @@ "xloc": [ "default.handlebars->27->1344", "default.handlebars->27->1345", - "default.handlebars->27->1626", - "default.handlebars->27->1780", - "default.handlebars->27->1799", + "default.handlebars->27->1628", + "default.handlebars->27->1782", + "default.handlebars->27->1801", "default.handlebars->27->636" ] }, @@ -28201,7 +28208,7 @@ "ru": "Членство в группах пользователей", "zh-chs": "用戶組成員資格", "xloc": [ - "default.handlebars->27->1777" + "default.handlebars->27->1779" ] }, { @@ -28225,9 +28232,9 @@ "ru": "Идентификатор пользователя", "zh-chs": "用戶標識", "xloc": [ - "default.handlebars->27->1405", - "default.handlebars->27->1695", - "default.handlebars->27->1696" + "default.handlebars->27->1406", + "default.handlebars->27->1697", + "default.handlebars->27->1698" ] }, { @@ -28235,7 +28242,7 @@ "nl": "Gebruikers-ID's", "xloc": [ "default.handlebars->27->1342", - "default.handlebars->27->1679" + "default.handlebars->27->1681" ] }, { @@ -28252,7 +28259,7 @@ "ru": "Экспортировать список пользователей", "zh-chs": "用戶列表導出", "xloc": [ - "default.handlebars->27->1571" + "default.handlebars->27->1572" ] }, { @@ -28270,7 +28277,7 @@ "zh-chs": "用戶名", "xloc": [ "default-mobile.handlebars->9->443", - "default.handlebars->27->1404" + "default.handlebars->27->1405" ] }, { @@ -28332,7 +28339,7 @@ "ru": "Сессии пользователя", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->27->1874" + "default.handlebars->27->1876" ] }, { @@ -28466,7 +28473,7 @@ "zh-chs": "用戶名", "xloc": [ "default-mobile.handlebars->9->268", - "default.handlebars->27->1583", + "default.handlebars->27->1584", "default.handlebars->27->272", "default.handlebars->27->304", "default.handlebars->27->699", @@ -28528,9 +28535,9 @@ "ru": "Пользователи", "zh-chs": "用戶數", "xloc": [ - "default.handlebars->27->1614", - "default.handlebars->27->1642", - "default.handlebars->27->1873", + "default.handlebars->27->1616", + "default.handlebars->27->1644", + "default.handlebars->27->1875", "default.handlebars->container->topbar->1->1->UsersSubMenuSpan->UsersSubMenu->1->0->UsersGeneral" ] }, @@ -28548,7 +28555,7 @@ "ru": "Сессии пользователей", "zh-chs": "用戶會話", "xloc": [ - "default.handlebars->27->1861" + "default.handlebars->27->1863" ] }, { @@ -28572,7 +28579,7 @@ "en": "Validate Email", "nl": "E-mail valideren", "xloc": [ - "default.handlebars->27->1538" + "default.handlebars->27->1539" ] }, { @@ -28640,7 +28647,7 @@ "ru": "Проверенный", "zh-chs": "已驗證", "xloc": [ - "default.handlebars->27->1758" + "default.handlebars->27->1760" ] }, { @@ -28667,7 +28674,7 @@ "zh-chs": "验证电话号码", "xloc": [ "default-mobile.handlebars->9->63", - "default.handlebars->27->1534", + "default.handlebars->27->1535", "default.handlebars->27->949" ] }, @@ -28744,7 +28751,7 @@ "ru": "Версия несовместима, пожалуйста, сначала обновите установку MeshCentral", "zh-chs": "版本不兼容,请先升级您的MeshCentral安装", "xloc": [ - "default.handlebars->27->1905" + "default.handlebars->27->1907" ] }, { @@ -28812,8 +28819,8 @@ "ru": "Просмотр журнала изменений", "zh-chs": "查看变更日志", "xloc": [ - "default.handlebars->27->1908", - "default.handlebars->27->1910" + "default.handlebars->27->1910", + "default.handlebars->27->1912" ] }, { @@ -28864,7 +28871,7 @@ "ru": "Посмотреть примечания об этом пользователе", "zh-chs": "查看有關此用戶的註釋", "xloc": [ - "default.handlebars->27->1736" + "default.handlebars->27->1738" ] }, { @@ -28965,7 +28972,7 @@ "default-mobile.handlebars->9->419", "default-mobile.handlebars->9->432", "default.handlebars->27->1364", - "default.handlebars->27->1392" + "default.handlebars->27->1393" ] }, { @@ -29071,8 +29078,8 @@ "ru": "Веб-сервер", "zh-chs": "網絡服務器", "xloc": [ - "default.handlebars->27->1894", - "default.handlebars->27->1895" + "default.handlebars->27->1896", + "default.handlebars->27->1897" ] }, { @@ -29089,7 +29096,7 @@ "ru": "Запросы веб-сервера", "zh-chs": "Web服務器請求", "xloc": [ - "default.handlebars->27->1896" + "default.handlebars->27->1898" ] }, { @@ -29106,7 +29113,7 @@ "ru": "Ретранслятор Web Socket", "zh-chs": "Web套接字中繼", "xloc": [ - "default.handlebars->27->1897" + "default.handlebars->27->1899" ] }, { @@ -29183,7 +29190,7 @@ "ru": "Когда этот параметр включен, коды приглашений могут использоваться любым пользователем для присоединения устройств к этой группе устройств по следующей общедоступной ссылке:", "zh-chs": "啟用後,任何人都可以使用邀請代碼通過以下公共鏈接將設備加入該設備組:", "xloc": [ - "default.handlebars->27->1413" + "default.handlebars->27->1414" ] }, { @@ -29218,7 +29225,7 @@ "ru": "Будет изменено при следующем входе в систему.", "zh-chs": "下次登錄時將更改。", "xloc": [ - "default.handlebars->27->1708" + "default.handlebars->27->1710" ] }, { @@ -30187,7 +30194,7 @@ "ru": "\\\\'", "zh-chs": "\\\\'", "xloc": [ - "default.handlebars->27->1906" + "default.handlebars->27->1908" ] }, { @@ -30381,7 +30388,7 @@ "zh-chs": "複製", "xloc": [ "default-mobile.handlebars->9->130", - "default.handlebars->27->1480" + "default.handlebars->27->1481" ] }, { @@ -30455,8 +30462,8 @@ "ru": "eventslist.csv", "zh-chs": "eventslist.csv", "xloc": [ - "default.handlebars->27->1503", - "default.handlebars->27->1508" + "default.handlebars->27->1504", + "default.handlebars->27->1509" ] }, { @@ -30473,8 +30480,8 @@ "ru": "eventslist.json", "zh-chs": "eventslist.json", "xloc": [ - "default.handlebars->27->1505", - "default.handlebars->27->1509" + "default.handlebars->27->1506", + "default.handlebars->27->1510" ] }, { @@ -30508,7 +30515,7 @@ "ru": "свободно", "zh-chs": "自由", "xloc": [ - "default.handlebars->27->1869" + "default.handlebars->27->1871" ] }, { @@ -30693,7 +30700,7 @@ "ru": "id, name, email, creation, lastlogin, groups, authfactors", "zh-chs": "id,名稱,電子郵件,創建,lastlogin,組,authfactors", "xloc": [ - "default.handlebars->27->1572" + "default.handlebars->27->1573" ] }, { @@ -30794,7 +30801,7 @@ "ru": "k max, пусто по умолчанию", "zh-chs": "k max,默认为空白", "xloc": [ - "default.handlebars->27->1600" + "default.handlebars->27->1601" ] }, { @@ -30898,7 +30905,7 @@ "zh-chs": "移動", "xloc": [ "default-mobile.handlebars->9->131", - "default.handlebars->27->1481" + "default.handlebars->27->1482" ] }, { @@ -30967,7 +30974,7 @@ "ru": "servertrace.csv", "zh-chs": "servertrace.csv", "xloc": [ - "default.handlebars->27->1904" + "default.handlebars->27->1906" ] }, { @@ -31024,7 +31031,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->27->1882" + "default.handlebars->27->1884" ] }, { @@ -31041,7 +31048,7 @@ "ru": "time, source, message", "zh-chs": "時間,來源,訊息", "xloc": [ - "default.handlebars->27->1903" + "default.handlebars->27->1905" ] }, { @@ -31072,7 +31079,7 @@ "ru": "всего", "zh-chs": "總", "xloc": [ - "default.handlebars->27->1870" + "default.handlebars->27->1872" ] }, { @@ -31143,8 +31150,8 @@ "ru": "userlist.csv", "zh-chs": "userlist.csv", "xloc": [ - "default.handlebars->27->1568", - "default.handlebars->27->1573" + "default.handlebars->27->1569", + "default.handlebars->27->1574" ] }, { @@ -31161,8 +31168,8 @@ "ru": "userlist.json", "zh-chs": "userlist.json", "xloc": [ - "default.handlebars->27->1570", - "default.handlebars->27->1574" + "default.handlebars->27->1571", + "default.handlebars->27->1575" ] }, { @@ -31179,7 +31186,7 @@ "ru": "utc, время, тип, действие, пользователь, устройство, сообщение", "zh-chs": "utc,時間,類型,操作,用戶,設備,消息", "xloc": [ - "default.handlebars->27->1507" + "default.handlebars->27->1508" ] }, { @@ -31213,7 +31220,7 @@ "ru": "{0} Гб", "zh-chs": "{0} Gb", "xloc": [ - "default.handlebars->27->1460" + "default.handlebars->27->1461" ] }, { @@ -31230,8 +31237,8 @@ "ru": "{0} Kб", "zh-chs": "{0} Kb", "xloc": [ - "default.handlebars->27->1458", - "default.handlebars->27->1810" + "default.handlebars->27->1459", + "default.handlebars->27->1812" ] }, { @@ -31249,7 +31256,7 @@ "zh-chs": "{0} Mb", "xloc": [ "default-mobile.handlebars->9->384", - "default.handlebars->27->1459", + "default.handlebars->27->1460", "default.handlebars->27->928" ] }, @@ -31285,7 +31292,7 @@ "ru": "{0} активных сессий", "zh-chs": "{0}個活動會話", "xloc": [ - "default.handlebars->27->1748" + "default.handlebars->27->1750" ] }, { @@ -31302,7 +31309,7 @@ "ru": "{0} байт", "zh-chs": "{0} b", "xloc": [ - "default.handlebars->27->1457" + "default.handlebars->27->1458" ] }, { @@ -31320,8 +31327,8 @@ "zh-chs": "{0}個字節", "xloc": [ "default-mobile.handlebars->9->119", - "default.handlebars->27->1468", - "default.handlebars->27->1825" + "default.handlebars->27->1469", + "default.handlebars->27->1827" ] }, { @@ -31338,7 +31345,7 @@ "ru": "{0} байт осталось", "zh-chs": "剩餘{0}個字節", "xloc": [ - "default.handlebars->27->1452" + "default.handlebars->27->1453" ] }, { @@ -31362,7 +31369,7 @@ "ru": "{0} гигабайт осталось", "zh-chs": "剩餘{0} GB", "xloc": [ - "default.handlebars->27->1455" + "default.handlebars->27->1456" ] }, { @@ -31379,7 +31386,7 @@ "ru": "{0} групп", "zh-chs": "{0}個群組", "xloc": [ - "default.handlebars->27->1713" + "default.handlebars->27->1715" ] }, { @@ -31427,7 +31434,7 @@ "ru": "{0} килобайт осталось", "zh-chs": "剩餘{0}千字節", "xloc": [ - "default.handlebars->27->1453" + "default.handlebars->27->1454" ] }, { @@ -31462,7 +31469,7 @@ "ru": "{0} мегабайт осталось", "zh-chs": "剩餘{0}兆字節", "xloc": [ - "default.handlebars->27->1454" + "default.handlebars->27->1455" ] }, { @@ -31496,7 +31503,7 @@ "ru": "Еще {0} пользователей не показаны, используйте поиск для нахождения пользователей...", "zh-chs": "{0}未顯示更多用戶,請使用搜索框查找用戶...", "xloc": [ - "default.handlebars->27->1517" + "default.handlebars->27->1518" ] }, { @@ -31634,7 +31641,7 @@ "default-mobile.handlebars->9->169", "default-mobile.handlebars->9->172", "default-mobile.handlebars->9->175", - "default.handlebars->27->1521", + "default.handlebars->27->1522", "default.handlebars->27->229", "default.handlebars->27->232", "default.handlebars->27->235", @@ -31760,7 +31767,7 @@ "ru": "{0}k в 1 файле. {1}k максимум", "zh-chs": "{0} k合1檔案。最多{1} k", "xloc": [ - "default.handlebars->27->1462" + "default.handlebars->27->1463" ] }, { @@ -31777,7 +31784,7 @@ "ru": "{0}k в {1} файлах. {2}k максимум", "zh-chs": "{1}個文件中有{0}個。最多{2} k", "xloc": [ - "default.handlebars->27->1461" + "default.handlebars->27->1462" ] }, { diff --git a/views/default-mobile.handlebars b/views/default-mobile.handlebars index 08c7833b..6b8f3fcb 100644 --- a/views/default-mobile.handlebars +++ b/views/default-mobile.handlebars @@ -908,6 +908,12 @@ } function updateSelf() { + var accountSettingsLocked = false; + if (userinfo) { accountSettingsLocked = ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 1024) != 0)); } + QV('p3AccountActions', ((features & 4) == 0) && (serverinfo.domainauth == false) && (accountSettingsLocked == false)); // Hide Account Actions if in single user mode or domain authentication + QV('logoutMenuOption', ((features & 4) == 0) && (serverinfo.domainauth == false)); // Hide logout if in single user mode or domain authentication + QV('p2AccountSecurity', ((features & 4) == 0) && (serverinfo.domainauth == false) && ((features & 4096) != 0) && (accountSettingsLocked == false)); // Hide Account Security if in single user mode or domain authentication, 2 factor auth not supported. + QV('verifyEmailId', (userinfo.emailVerified !== true) && (userinfo.email != null) && (serverinfo.emailcheck == true)); QV('manageAuthApp', features & 4096); QV('manageOtp', ((features & 4096) != 0) && ((userinfo.otpsecret == 1) || (userinfo.otphkeys > 0))); @@ -942,9 +948,7 @@ case 'serverinfo': { serverinfo = message.serverinfo; if (serverinfo.timeout) { setInterval(checkIdleSessionTimeout, 10000); checkIdleSessionTimeout(); } - QV('p3AccountActions', ((features & 4) == 0) && (serverinfo.domainauth == false)); // Hide Account Actions if in single user mode or domain authentication - QV('logoutMenuOption', ((features & 4) == 0) && (serverinfo.domainauth == false)); // Hide logout if in single user mode or domain authentication - QV('p2AccountSecurity', ((features & 4) == 0) && (serverinfo.domainauth == false) && ((features & 4096) != 0)); // Hide Account Security if in single user mode or domain authentication, 2 factor auth not supported. + if (userinfo != null) updateSelf(); break; } case 'authcookie': { @@ -957,7 +961,7 @@ userinfo = message.userinfo; QH('p3userName', userinfo.name); //updateSiteAdmin(); - updateSelf(); + if (serverinfo != null) updateSelf(); break; } case 'users': { @@ -1146,7 +1150,7 @@ 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' }); } userinfo = message.event.account; - if (oldsiteadmin != newsiteadmin) updateSiteAdmin(); + //if (oldsiteadmin != newsiteadmin) updateSiteAdmin(); updateSelf(); // If our list of nodes may have changes, request the new list now. diff --git a/views/default.handlebars b/views/default.handlebars index f647b6ec..a9f2837b 100644 --- a/views/default.handlebars +++ b/views/default.handlebars @@ -354,7 +354,7 @@ -
+ @@ -1792,15 +1792,18 @@ function updateSiteAdmin() { var noServerBackup = '{{{noServerBackup}}}'; var siteRights = userinfo.siteadmin; + var accountSettingsLocked = ((siteRights != 0xFFFFFFFF) && ((siteRights & 1024) != 0)); if (noServerBackup == 1) { siteRights &= 0xFFFFFFFA; } // If not server backups allowed, remove server backup and restore permissions // Update account actions - QV('p2AccountSecurity', ((features & 4) == 0) && (serverinfo.domainauth == false) && ((features & 4096) != 0)); // Hide Account Security if in single user mode or domain authentication, 2 factor auth not supported. + QV('p2AccountSecurity', ((features & 4) == 0) && (serverinfo.domainauth == false) && ((features & 4096) != 0) && (accountSettingsLocked == false)); // Hide Account Security if in single user mode or domain authentication, 2 factor auth not supported. + QV('p2AccountActions', !accountSettingsLocked) QV('managePhoneNumber1', (features & 0x02000000) && (features & 0x04000000)); QV('managePhoneNumber2', (features & 0x02000000) && !(features & 0x04000000)); QV('manageEmail2FA', features & 0x00800000); QV('p2AccountPassActions', ((features & 4) == 0) && (serverinfo.domainauth == false) && (userinfo != null) && (userinfo._id.split('/')[2].startsWith('~') == false)); // Hide Account Actions if in single user mode or domain authentication //QV('p2AccountImage', ((features & 4) == 0) && (serverinfo.domainauth == false)); // If account actions are not visible, also remove the image on that panel + QV('p2AccountImage', !accountSettingsLocked) QV('p2ServerActions', siteRights & 21); QV('LeftMenuMyServer', siteRights & 21); // 16 + 4 + 1 QV('MainMenuMyServer', siteRights & 21); @@ -1878,8 +1881,9 @@ var backupCodesWarningDone = false; function updateSelf() { var authFactorCount = count2factoraAuths(); // Get the number of 2nd factors + var accountSettingsLocked = ((userinfo.siteadmin != 0xFFFFFFFF) && ((userinfo.siteadmin & 1024) != 0)); QV('verifyEmailId', (userinfo.emailVerified !== true) && (userinfo.email != null) && (serverinfo.emailcheck == true)); - QV('verifyEmailId2', (userinfo.emailVerified !== true) && (userinfo.email != null) && (serverinfo.emailcheck == true)); + QV('verifyEmailId2', (userinfo.emailVerified !== true) && (userinfo.email != null) && (serverinfo.emailcheck == true) && (accountSettingsLocked == false)); QV('manageOtp', authFactorCount > 0); QV('authPhoneNumberCheck', (userinfo.phone != null)); QV('authEmailSetupCheck', (userinfo.otpekey == 1) && (userinfo.email != null) && (userinfo.emailVerified == true)); @@ -9183,14 +9187,16 @@ x += addHtmlValue("User Consent", addLinkConditional(meshFeatures, 'p20editmeshconsent(1)', meshrights & 1)); } - // Display user notification - var meshNotify = 0, meshNotifyStr = []; - if (userinfo.links && userinfo.links[currentMesh._id] && userinfo.links[currentMesh._id].notify) { meshNotify = userinfo.links[currentMesh._id].notify; } - if (meshNotify & 2) { meshNotifyStr.push("Connect"); } - if (meshNotify & 4) { meshNotifyStr.push("Disconnect"); } - if (meshNotify & 8) { meshNotifyStr.push("Intel® AMT"); } - if (meshNotifyStr.length == 0) { meshNotifyStr.push('' + "None" + ''); } - x += addHtmlValue("Notifications", addLink(meshNotifyStr.join(', '), 'p20editMeshNotify()')); + if ((userinfo.siteadmin == 0xFFFFFFFF) || ((userinfo.siteadmin & 1024) == 0)) { + // Display user notification + var meshNotify = 0, meshNotifyStr = []; + if (userinfo.links && userinfo.links[currentMesh._id] && userinfo.links[currentMesh._id].notify) { meshNotify = userinfo.links[currentMesh._id].notify; } + if (meshNotify & 2) { meshNotifyStr.push("Connect"); } + if (meshNotify & 4) { meshNotifyStr.push("Disconnect"); } + if (meshNotify & 8) { meshNotifyStr.push("Intel® AMT"); } + if (meshNotifyStr.length == 0) { meshNotifyStr.push('' + "None" + ''); } + x += addHtmlValue("Notifications", addLink(meshNotifyStr.join(', '), 'p20editMeshNotify()')); + } // Display invitation codes if ((features & 0x01000000) && (currentMesh.mtype == 2)) { @@ -9567,6 +9573,7 @@ x += '
'; x += '
'; x += '
'; + x += '
'; x += ''; if (userid == null) { @@ -10633,7 +10640,7 @@ if ((user.siteadmin != null) && ((user.siteadmin & 32) != 0) && (user.siteadmin != 0xFFFFFFFF)) { permissions += "Locked" + ', '; } permissions += ''; - var urights = user.siteadmin & (0xFFFFFFFF - 224); + var urights = user.siteadmin & (0xFFFFFFFF - 1248); if ((user.siteadmin == null) || (urights == 0)) { permissions += "User"; } else if (urights == 8) { @@ -10645,7 +10652,7 @@ } else { permissions += "Partial"; } - if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128)) != 0)) { permissions += '*'; } + if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128 + 1024)) != 0)) { permissions += '*'; } permissions += ''; //if ((user.quota != null) && ((user.siteadmin & 8) != 0)) { msg += ", " + (user.quota / 1024) + " k"; } if (self) { permissions += ''; } @@ -11035,6 +11042,7 @@ x += '
'; x += '
'; x += '
'; + x += '
'; x += ''; setDialogMode(2, "Server Permissions", 2 + (uself?0:1), showUserAdminDialogEx, x, user); if (user.siteadmin && user.siteadmin != 0) { @@ -11046,6 +11054,7 @@ Q('ua_lockedaccount').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 32) != 0)); // Account locked Q('ua_nonewgroups').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 64) != 0)); // No New Groups Q('ua_nomeshcmd').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 128) != 0)); // No Tools (MeshCMD / Router) + Q('ua_locksettings').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)); // Lock account settings } if ((userinfo.siteadmin & 2) != 0) { Q('ua_manageusers').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 2) != 0)); // Manage Users @@ -11075,6 +11084,7 @@ QE('ua_lockedaccount', !uself && (userinfo.siteadmin & 2) && (user.siteadmin != 0xFFFFFFFF) && (userinfo._id != user._id)); QE('ua_nonewgroups', !uself && (userinfo.siteadmin & 2) && (user.siteadmin != 0xFFFFFFFF) && (userinfo._id != user._id)); QE('ua_nomeshcmd', !uself && (userinfo.siteadmin & 2) && (user.siteadmin != 0xFFFFFFFF) && (userinfo._id != user._id)); + QE('ua_locksettings', !uself && (userinfo.siteadmin & 2) && (user.siteadmin != 0xFFFFFFFF) && (userinfo._id != user._id)); Q('ua_fileaccessquota').value = (user.quota != null)?(user.quota / 1024):''; showUserAdminDialogValidate(); return false; @@ -11091,8 +11101,9 @@ QE('ua_nonewgroups', !Q('ua_fulladmin').checked); QE('ua_nomeshcmd', !Q('ua_fulladmin').checked); QE('ua_manageusergroups', !Q('ua_fulladmin').checked); - QE('ua_fileaccessquota', Q('ua_fileaccess').checked && !Q('ua_fulladmin').checked); QE('ua_managerecordings', !Q('ua_fulladmin').checked); + QE('ua_locksettings', !Q('ua_fulladmin').checked); + QE('ua_fileaccessquota', Q('ua_fileaccess').checked && !Q('ua_fulladmin').checked); } } @@ -11109,6 +11120,7 @@ if (Q('ua_nomeshcmd').checked == true) siteadmin += 128; if (Q('ua_manageusergroups').checked == true) siteadmin += 256; if (Q('ua_managerecordings').checked == true) siteadmin += 512; + if (Q('ua_locksettings').checked == true) siteadmin += 1024; } var x = { action: 'edituser', id: user._id, siteadmin: siteadmin }; if (isNaN(quota) == false) { x.quota = (quota * 1024); } @@ -11580,8 +11592,8 @@ // Server permissions var msg = [], premsg = ''; if ((user.siteadmin != null) && ((user.siteadmin & 32) != 0) && (user.siteadmin != 0xFFFFFFFF)) { premsg = ' '; msg.push("Locked account"); } - if ((user.siteadmin == null) || ((user.siteadmin & (0xFFFFFFFF - 224)) == 0)) { msg.push("No server rights"); } else if (user.siteadmin == 8) { msg.push("Access to server files"); } else if (user.siteadmin == 0xFFFFFFFF) { msg.push("Full administrator"); } else { msg.push("Partial rights"); } - if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128)) != 0)) { msg.push("Restrictions"); } + if ((user.siteadmin == null) || ((user.siteadmin & (0xFFFFFFFF - 1248)) == 0)) { msg.push("No server rights"); } else if (user.siteadmin == 8) { msg.push("Access to server files"); } else if (user.siteadmin == 0xFFFFFFFF) { msg.push("Full administrator"); } else { msg.push("Partial rights"); } + if ((user.siteadmin != null) && (user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & (64 + 128 + 1024)) != 0)) { msg.push("Restrictions"); } // Show user attributes var x = '
'; diff --git a/webserver.js b/webserver.js index a23a9c0c..1e38d478 100644 --- a/webserver.js +++ b/webserver.js @@ -1754,6 +1754,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { } } if (!user) { parent.debug('web', 'handleDeleteAccountRequest: user not found.'); res.sendStatus(404); return; } + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) { parent.debug('web', 'handleDeleteAccountRequest: account settings locked.'); res.sendStatus(404); return; } // Check if the password is correct obj.authenticate(user._id.split('/')[2], req.body.apassword1, domain, function (err, userid) { @@ -1874,6 +1875,13 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) { return; } + // Check account settings locked + if ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 1024) != 0)) { + parent.debug('web', 'handlePasswordChangeRequest: account settings locked.'); + res.sendStatus(404); + return; + } + // Check old password obj.checkUserPassword(domain, user, req.body.apassword0, function (result) { if (result == true) {