From 1c080b5ca821ef6e1d40025289195b18fa2973b5 Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 26 一月 2026 22:46:48 +0800
Subject: [PATCH] 1.把 m_bufGlass 的释放提前到 CMaster::term(),确保在 m_glassPool.term() 之前完成,避免析构时再触碰已被回收的 Glass。析构里仍保留原逻辑,若 term() 已清空则不会重复释放。
---
SourceCode/Bond/Servo/CUserManager2.cpp | 32 +++++++++++++++++++++++++++++---
1 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/SourceCode/Bond/Servo/CUserManager2.cpp b/SourceCode/Bond/Servo/CUserManager2.cpp
index 4f45e52..402b2f6 100644
--- a/SourceCode/Bond/Servo/CUserManager2.cpp
+++ b/SourceCode/Bond/Servo/CUserManager2.cpp
@@ -4,6 +4,7 @@
#include <vector>
#include <map>
#include <utility>
+#include <algorithm>
#include <sstream>
#include <cwchar>
@@ -66,14 +67,33 @@
bool hasAny = false;
for (auto& ln : SplitLines(buffer)) { if (!ln.empty()) { hasAny = true; break; } }
if (!hasAny) {
- const wchar_t* roles = L"Admin:100\nEngineer:50\nOperator:10\n";
+ const wchar_t* roles = L"Admin:100\nEE:80\nPE:50\nOperator:10\n";
(void)UX_SetRoleDefinitions(roles);
(void)UX_AddUser(L"admin", L"Administrator", L"admin123", L"Admin");
UX_DefineAction(L"start", L"鍚姩鏈哄彴", L"Operator");
UX_DefineAction(L"stop", L"鍋滄満", L"Operator");
- UX_DefineAction(L"recipe", L"缂栬緫閰嶆柟", L"Engineer");
+ UX_DefineAction(L"recipe", L"缂栬緫閰嶆柟", L"PE");
+ UX_DefineAction(L"delVarialbles", L"鍒犻櫎鍙橀噺", L"PE");
+ UX_DefineAction(L"addVarialbles", L"鏂板鍙橀噺", L"PE");
+ UX_DefineAction(L"editVarialbles", L"缂栬緫鍙橀噺", L"PE");
+ UX_DefineAction(L"addReports", L"鏂板Report", L"PE");
+ UX_DefineAction(L"editReports", L"缂栬緫Report", L"PE");
+ UX_DefineAction(L"delReports", L"鍒犻櫎Report", L"PE");
+ UX_DefineAction(L"addEvents", L"鏂板Event", L"PE");
+ UX_DefineAction(L"editEvents", L"缂栬緫Event", L"PE");
+ UX_DefineAction(L"delEvents", L"鍒犻櫎Event", L"PE");
}
+ // 纭繚鏉冮檺瀹氫箟瀛樺湪锛堝箓绛夛級
+ UX_DefineAction(L"addVarialbles", L"鏂板鍙橀噺", L"PE");
+ UX_DefineAction(L"editVarialbles", L"缂栬緫鍙橀噺", L"PE");
+ UX_DefineAction(L"delVarialbles", L"鍒犻櫎鍙橀噺", L"PE");
+ UX_DefineAction(L"addReports", L"鏂板Report", L"PE");
+ UX_DefineAction(L"editReports", L"缂栬緫Report", L"PE");
+ UX_DefineAction(L"delReports", L"鍒犻櫎Report", L"PE");
+ UX_DefineAction(L"delEvents", L"鍒犻櫎Event", L"PE");
+ UX_DefineAction(L"addEvents", L"鏂板Event", L"PE");
+ UX_DefineAction(L"editEvents", L"缂栬緫Event", L"PE");
}
bool CUserManager2::login(const char* pszAccount, const char* pszPwd)
@@ -146,9 +166,15 @@
}
}
+ std::sort(roles.begin(), roles.end(), [](const RoleInfo& a, const RoleInfo& b) {
+ if (a.level == b.level) {
+ return a.name < b.name;
+ }
+ return a.level > b.level;
+ });
+
return roles;
}
-
std::vector<CUserManager2::UserInfo> CUserManager2::getUsers()
{
std::vector<UserInfo> users;
--
Gitblit v1.9.3