chenluhua1980
2026-01-19 30a7b29d0eb11ce87a9c0cafa0e5dd00c242d699
SourceCode/Bond/Servo/CUserManager2.cpp
@@ -1,9 +1,10 @@
#include "stdafx.h"
#include "stdafx.h"
#include "CUserManager2.h"
#include "ToolUnits.h"
#include <vector>
#include <map>
#include <utility>
#include <algorithm>
#include <sstream>
#include <cwchar>
@@ -40,7 +41,7 @@
   return L"";
}
// 获取单例实例
// 获取单例实例
CUserManager2& CUserManager2::getInstance() {
   static CUserManager2 instance;
   return instance;
@@ -66,10 +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"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)
@@ -142,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;