void CAdminDlg::OnAdd() { // TODO: Add your control notification handler code here CUserDlg dlg; dlg.m_Add = true; dlg.m_Super = curgroup; if (dlg.DoModal()==IDCANCEL) return; CChangePasDlg pas; pas.m_First = true; if(pas.DoModal()==IDCANCEL) { return; } _UInfo TempInfo; memset(&TempInfo, 0, sizeof(_UInfo)); TempInfo.Active = true; TempInfo.Type = dlg.m_Super; if (TempInfo.Type == UT_ADMIN) { DWORD TempType = 0; if (dlg.m_Change) TempType = AT_CREATE; if (dlg.m_Tarif) TempType |= AT_TARIF; if (dlg.m_Com) TempType |= AT_SETUP; if (dlg.m_Holiday) TempType |= AT_HOLIDAY; if (dlg.m_Manage) { TempType |= AT_MANAGE; DWORD TempMenage = 0; if (dlg.m_Unblock) TempMenage |= MT_UNBLOCK; if (dlg.m_Block) TempMenage |= MT_BLOCK; if (dlg.m_Reboot) TempMenage |= MT_REBOOT; if (dlg.m_Shutdown) TempMenage |= MT_SHUTDOWN; if (dlg.m_InetOn) TempMenage |= MT_INETON; if (dlg.m_InetOff) TempMenage |= MT_INETOFF; TempType |= TempMenage; }; TempInfo.Admin = TempType; } strcpy(TempInfo.Creator, UInfo.Fio); strcpy(TempInfo.Fio, dlg.m_Fio); memcpy(&TempInfo.Hash, &pas.m_Hash, 16); CUserInfo *user = new CUserInfo(&TempInfo); Users[dlg.m_Id] = user; LoadUsers(); m_Tree.Expand(groups[TempInfo.Type], TVE_EXPAND); }
// ----------------------------------------------------------------------------- // ログイン設定ボタン // ----------------------------------------------------------------------------- void CMainFrame::OnSettingLogin() { CUserDlg dlg; dlg.DoModal(); }
void CAdminDlg::OnEdit() { // TODO: Add your control notification handler code here WORD Id; HTREEITEM Ti; CUserInfo *user = (CUserInfo *)Users[Id=m_Tree.GetItemData(Ti=m_Tree.GetSelectedItem())]; if (Id == 0 && User != 0) { MessageBox("Редактировать данные системного суперпользователя может только он сам!","Ошибка",MB_OK|MB_ICONERROR); return; } _UInfo TempInfo = user->Info; CUserDlg dlg; dlg.m_Add = false; dlg.m_Id = Id; dlg.m_Fio = TempInfo.Fio; dlg.m_Creator = TempInfo.Creator; dlg.m_Super = TempInfo.Type; if (TempInfo.Type == UT_ADMIN) { if (TempInfo.Admin & AT_CREATE) dlg.m_Change = true; if (TempInfo.Admin & AT_TARIF) dlg.m_Tarif = true; if (TempInfo.Admin & AT_SETUP) dlg.m_Com = true; if (TempInfo.Admin & AT_HOLIDAY) dlg.m_Holiday = true; if (TempInfo.Admin & AT_MANAGE) { dlg.m_Manage = true; if (TempInfo.Admin & MT_UNBLOCK) dlg.m_Unblock = true; if (TempInfo.Admin & MT_BLOCK) dlg.m_Block = true; if (TempInfo.Admin & MT_REBOOT) dlg.m_Reboot = true; if (TempInfo.Admin & MT_SHUTDOWN) dlg.m_Shutdown = true; if (TempInfo.Admin & MT_INETON) dlg.m_InetOn = true; if (TempInfo.Admin & MT_INETOFF) dlg.m_InetOff = true; } } if (dlg.DoModal()==IDCANCEL) return; strcpy(TempInfo.Fio, dlg.m_Fio); if (Id == 0 && dlg.m_Super != 0) { MessageBox("Вы пытались понизить свои права доступа!\nИзменения отклонены.","Ошибка",MB_OK|MB_ICONERROR); } else TempInfo.Type = dlg.m_Super; if (TempInfo.Type == UT_ADMIN) { DWORD TempType = 0; if (dlg.m_Change) TempType |= AT_CREATE; if (dlg.m_Tarif) TempType |= AT_TARIF; if (dlg.m_Com) TempType |= AT_SETUP; if (dlg.m_Holiday) TempType |= AT_HOLIDAY; if (dlg.m_Manage) { TempType |= AT_MANAGE; DWORD TempMenage = 0; if (dlg.m_Unblock) TempMenage |= MT_UNBLOCK; if (dlg.m_Block) TempMenage |= MT_BLOCK; if (dlg.m_Reboot) TempMenage |= MT_REBOOT; if (dlg.m_Shutdown) TempMenage |= MT_SHUTDOWN; if (dlg.m_InetOn) TempMenage |= MT_INETON; if (dlg.m_InetOff) TempMenage |= MT_INETOFF; TempType |= TempMenage; }; TempInfo.Admin = TempType; } user->Info = TempInfo; int gr = curgroup; LoadUsers(); m_Tree.Expand(groups[gr], TVE_EXPAND); }