chenluhua1980
2025-11-18 d60bb6116c698269d405fce3040bdc75128c6820
SourceCode/Bond/Servo/ServoDlg.cpp
@@ -16,6 +16,7 @@
#include "CRobotCmdContainerDlg.h"
#include "CRobotCmdTestDlg.h"
#include "LoginDlg.h"
#include "LoginDlg2.h"
#include "ChangePasswordDlg.h"
#include "UserManagerDlg.h"
#include "SystemLogManagerDlg.h"
@@ -30,6 +31,8 @@
#include "InputDialog.h"
#include "ClientListDlg.h"
#include "CControlJobManagerDlg.h"
#include "CUserManager2.h"
#include "CUserManager2Dlg.h"
#ifdef _DEBUG
@@ -44,7 +47,7 @@
#define TIMER_ID_UPDATE_RUMTIME         2
/* Test */
#define TIMER_ID_TEST               3
#define TIMER_ID_LOGIN               3
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
@@ -197,7 +200,7 @@
         else if (RX_CODE_MASTER_STATE_CHANGED == code) {
            SERVO::MASTERSTATE state = theApp.m_model.getMaster().getState();
            if (state == SERVO::MASTERSTATE::READY) {
               m_pTopToolbar->GetBtn(IDC_BUTTON_RUN)->EnableWindow(TRUE);
               m_pTopToolbar ->GetBtn(IDC_BUTTON_RUN)->EnableWindow(TRUE);
               m_pTopToolbar->GetBtn(IDC_BUTTON_RUN_BATCH)->EnableWindow(TRUE);
               m_pTopToolbar->GetBtn(IDC_BUTTON_RUN_CT)->EnableWindow(TRUE);
               m_pTopToolbar->GetBtn(IDC_BUTTON_STOP)->EnableWindow(FALSE);
@@ -368,7 +371,7 @@
   // model init
   theApp.m_model.init();
   SetTimer(TIMER_ID_TEST, 1000, nullptr);
   SetTimer(TIMER_ID_LOGIN, 1000, nullptr);
   // 菜单
   CMenu menu;
@@ -935,11 +938,23 @@
      m_pMyStatusbar->setRunTimeText((LPTSTR)(LPCTSTR)strText);
   }
   else if(TIMER_ID_TEST == nIDEvent){
      static __int64 tttt = 0;
      tttt++;
      theApp.m_model.m_hsmsPassive.setVariableValue("CJobSpace", tttt % 10);
      theApp.m_model.m_hsmsPassive.setVariableValue("PJobSpace", tttt % 5);
   else if(TIMER_ID_LOGIN == nIDEvent){
      KillTimer(TIMER_ID_LOGIN);
      if (!CUserManager2::getInstance().isLoggedIn()) {
         CLoginDlg2 dlg;
         if (dlg.DoModal() != IDOK) {
            PostMessage(WM_CLOSE);
         }
         else {
            bool bRet = CUserManager2::getInstance().login((LPTSTR)(LPCTSTR)dlg.m_strUsername,
               (LPTSTR)(LPCTSTR)dlg.m_strPassword);
            if (!bRet) {
               AfxMessageBox("登录失败,请检查用户名或密码是否正确!");
               PostMessage(WM_CLOSE);
            }
            UpdateLoginStatus();
         }
      }
   }
@@ -977,32 +992,24 @@
void CServoDlg::UpdateLoginStatus()
{
   HMENU hMenu = m_pTopToolbar->GetOperatorMenu();
   UserManager& userManager = UserManager::getInstance();
   if (userManager.isLoggedIn())
   {
      ::EnableMenuItem(hMenu, ID_OPEATOR_LOGIN, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      ::EnableMenuItem(hMenu, ID_OPERATOR_CHANGE_PASSWORD, MF_BYCOMMAND | MF_ENABLED);
   CUserManager2& userManager = CUserManager2::getInstance();
   if (userManager.isLoggedIn()) {
      ::EnableMenuItem(hMenu, ID_OPERATOR_SYSTEM_LOG, MF_BYCOMMAND | MF_ENABLED);
      ::EnableMenuItem(hMenu, ID_OPEATOR_SWITCH, MF_BYCOMMAND | MF_ENABLED);
      ::EnableMenuItem(hMenu, ID_OPERATOR_LOGOUT, MF_BYCOMMAND | MF_ENABLED);
      if (userManager.getCurrentUserRole() == UserRole::SuperAdmin) {
      if (userManager.IsAdminCurrent()) {
         ::EnableMenuItem(hMenu, ID_OPEATOR_USER_MANAGER, MF_BYCOMMAND | MF_ENABLED);
      }
      else {
         ::EnableMenuItem(hMenu, ID_OPEATOR_USER_MANAGER, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      }
      m_pTopToolbar->SetOperatorBtnText(userManager.getCurrentUser().c_str());
      m_pTopToolbar->SetOperatorBtnText(userManager.getCurrentUserName().c_str());
   }
   else {
      ::EnableMenuItem(hMenu, ID_OPEATOR_LOGIN, MF_BYCOMMAND | MF_ENABLED);
      ::EnableMenuItem(hMenu, ID_OPERATOR_CHANGE_PASSWORD, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      ::EnableMenuItem(hMenu, ID_OPEATOR_USER_MANAGER, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      ::EnableMenuItem(hMenu, ID_OPERATOR_SYSTEM_LOG, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      ::EnableMenuItem(hMenu, ID_OPEATOR_SWITCH, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      ::EnableMenuItem(hMenu, ID_OPERATOR_LOGOUT, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      m_pTopToolbar->SetOperatorBtnText(_T("未登录"));
   }
}
@@ -1090,6 +1097,13 @@
   }
   else if (id == IDC_BUTTON_OPERATOR) {
      int menuId = (int)wParam;
      if (menuId == 0) {
         CUserManager2Dlg dlg;
         dlg.DoModal();
      }
      /*
      SystemLogManager& logManager = SystemLogManager::getInstance();
      UserManager& userManager = UserManager::getInstance();
      if (menuId == 0) {
@@ -1138,6 +1152,7 @@
      }
      UpdateLoginStatus();
      */
   }
   return 0;