Feat: Add privilege column (SYSTEM/Admin/User) to online host list

This commit is contained in:
yuanyuanxiang
2026-06-30 22:44:31 +02:00
parent bcccbefb77
commit 6d0b1bb07b
6 changed files with 39 additions and 29 deletions

View File

@@ -139,15 +139,16 @@ COLUMNSTRUCT g_Column_Data_Online[g_Column_Count_Online] = {
{"预览", 60 },
{"IP", 130 },
{"端口", 60 },
{"地理位置", 130 },
{"计算机名/备注", 150 },
{"地理位置", 140 },
{"计算机名/备注", 140 },
{"操作系统", 120 },
{"CPU", 80 },
{"摄像头", 70 },
{"RTT", 70 },
{"摄像头", 60 },
{"RTT", 60 },
{"版本", 90 },
{"安装时间", 120 },
{"活动窗口", 140 },
{"权限", 60 },
{"安装时间", 130 },
{"活动窗口", 130 },
{"类型", 50 },
};
@@ -1462,8 +1463,12 @@ VOID CMy2015RemoteDlg::AddList(CString strIP, CString strAddr, CString strPCName
capStr = ver.Mid(dashPos + 1);
}
const std::string& privUser = v[RES_USERNAME];
const std::string& privAdmin = v[RES_ISADMIN];
CString privilegeStr = privUser == "SYSTEM" ? "SYSTEM" : privAdmin == "1" ? "Admin" : "User";
CString data[ONLINELIST_MAX] = { strIP, strAddr, "", strPCName, strOS, strCPU, strVideo, strPing,
verDisplay, install, startTime, v[RES_CLIENT_TYPE].empty() ? "?" : v[RES_CLIENT_TYPE].c_str(), path,
verDisplay, privilegeStr, install, startTime, v[RES_CLIENT_TYPE].empty() ? "?" : v[RES_CLIENT_TYPE].c_str(), path,
v[RES_CLIENT_PUBIP].empty() ? strIP : v[RES_CLIENT_PUBIP].c_str(), startTime, capStr,
};
// 优先采用客户端自报的 ID新客户端用 V2 算法 = MachineGuid + 归一化路径,

View File

@@ -104,9 +104,10 @@ inline const char* GetColumnName(int index) {
"Camera", // 6
"RTT", // 7
"Version", // 8
"InstallTime", // 9
"ActiveWindow", // 10
"ClientType", // 11
"Privilege", // 9 ONLINELIST_PRIVILEGE
"InstallTime", // 10 ONLINELIST_INSTALLTIME
"ActiveWindow", // 11 ONLINELIST_LOGINTIME
"ClientType", // 12 ONLINELIST_CLIENTTYPE
};
if (index >= 0 && index < sizeof(names)/sizeof(names[0])) {
return names[index];

View File

@@ -102,18 +102,19 @@ void NotifySettingsDlg::PopulateComboBoxes()
// Column combo - use translatable strings
m_comboNotifyColumn.ResetContent();
struct { int id; const TCHAR* name; } columns[] = {
{ 0, _T("IP地址") },
{ 1, _T("地址") },
{ 2, _T("地理位置") },
{ 3, _T("计算机名") },
{ 4, _T("操作系统") },
{ 5, _T("CPU") },
{ 6, _T("摄像头") },
{ 7, _T("延迟") },
{ 8, _T("版本") },
{ 9, _T("安装时间") },
{ 10, _T("活动窗口") },
{ 11, _T("客户端类型") },
{ ONLINELIST_IP, _T("IP地址") },
{ ONLINELIST_ADDR, _T("地址") },
{ ONLINELIST_LOCATION, _T("地理位置") },
{ ONLINELIST_COMPUTER_NAME,_T("计算机名") },
{ ONLINELIST_OS, _T("操作系统") },
{ ONLINELIST_CPU, _T("CPU") },
{ ONLINELIST_VIDEO, _T("摄像头") },
{ ONLINELIST_PING, _T("延迟") },
{ ONLINELIST_VERSION, _T("版本") },
{ ONLINELIST_PRIVILEGE, _T("权限") },
{ ONLINELIST_INSTALLTIME, _T("安装时间") },
{ ONLINELIST_LOGINTIME, _T("活动窗口") },
{ ONLINELIST_CLIENTTYPE, _T("客户端类型") },
};
for (const auto& col : columns) {
CString item;

View File

@@ -14,6 +14,7 @@ enum {
ONLINELIST_VIDEO, // 摄像头(有无)
ONLINELIST_PING, // PING(对方的网速)
ONLINELIST_VERSION, // 版本信息
ONLINELIST_PRIVILEGE, // 权限级别 (SYSTEM/Admin/User)
ONLINELIST_INSTALLTIME, // 安装时间
ONLINELIST_LOGINTIME, // 活动窗口
ONLINELIST_CLIENTTYPE, // 客户端类型

View File

@@ -1945,3 +1945,4 @@ FRPC Զ
授权 %s 的下级数量限制已清除。\n下级重新认证后生效。=Sub-license limit for %s has been cleared.\nTakes effect when the sub-client re-authenticates.
提示: APK 已被修改,原签名失效,需要重签后才能安装到设备。=Note: APK has been patched and the original signature is invalid. Re-sign before installing.
重签命令 (需 Android SDK build-tools):=Re-sign command (requires Android SDK build-tools):
权限=Access

View File

@@ -1936,3 +1936,4 @@ FRPC Զ
授权 %s 的下级数量限制已清除。\n下级重新认证后生效。=授权 %s 的下级数量限制已清除。\n下级重新认证后生效。
提示: APK 已被修改,原签名失效,需要重签后才能安装到设备。=提示: APK 已被修改,原簽名失效,需要重簽後才能安裝到裝置。
重签命令 (需 Android SDK build-tools):=重簽命令 (需 Android SDK build-tools):
权限=权限