void CWizObjectDataDownloadWorker::startDownload() { // FIXME CWizKMAccountsServer asServer(WizKMGetAccountsServerURL(true)); QString strUserId = m_dbMgr.db().GetUserId(); QString strPassword = m_dbMgr.db().GetPassword(); // FIXME: hard-coded "normal" if (!asServer.Login(strUserId, strPassword, "normal")) { Q_EMIT downloaded(false); return; } WIZUSERINFOBASE info = asServer.GetUserInfo(); info.strKbGUID = m_data.strKbGUID; bool bOk = false; // reset info kb_guid and server url for downloading if (m_data.strKbGUID != m_dbMgr.db().kbGUID()) { CWizGroupDataArray arrayGroup; if (!asServer.GetGroupList(arrayGroup) || arrayGroup.empty()) { Q_EMIT downloaded(false); } CWizGroupDataArray::const_iterator it = arrayGroup.begin(); for (; it != arrayGroup.end(); it++) { const WIZGROUPDATA& group = *it; if (group.strGroupGUID == m_data.strKbGUID) { info.strDatabaseServer = group.strDatabaseServer; bOk = true; break; } } } else { bOk = true; } if (!bOk) { Q_EMIT downloaded(false); return; } CWizKMDatabaseServer ksServer(info); // FIXME: should we query object before download data? if (!ksServer.data_download(m_data.strObjectGUID, WIZOBJECTDATA::ObjectTypeToTypeString(m_data.eObjectType), m_data.arrayData, m_data.strDisplayName)) { Q_EMIT downloaded(false); return; } m_dbMgr.db(m_data.strKbGUID).UpdateObjectData(m_data.strObjectGUID, WIZOBJECTDATA::ObjectTypeToTypeString(m_data.eObjectType), m_data.arrayData); Q_EMIT downloaded(true); }
void WizInitBizCertDialog::verifyCert() { QString adminPassword = ui->editAdminPassword->text(); QString userPassword = ui->editUserPassword->text(); QString userPassword2 = ui->editUserPassword2->text(); QString hint = ui->editPasswordHint->text(); // if (adminPassword.isEmpty()) { WizMessageBox::information(this, tr("Please enter the password of cert created by administrator.")); ui->editAdminPassword->setFocus(); return; } if (userPassword.isEmpty()) { WizMessageBox::information(this, tr("Please enter the user password.")); ui->editUserPassword->setFocus(); return; } if (userPassword != userPassword2) { WizMessageBox::information(this, tr("The passwords does not match.")); ui->editUserPassword->setFocus(); return; } // WizDatabase* personalDb = m_pDb->personalDatabase(); QString userId = personalDb->getUserId(); QString password = personalDb->getPassword(); // QString bizGuid = m_pDb->bizGuid(); // WizExecutingActionDialog::executeAction(tr("Verifying cert..."), WIZ_THREAD_DEFAULT, [&]{ bool ret = false; QString error; // WizKMAccountsServer asServer(WizCommonApiEntry::syncUrl()); if (asServer.login(userId, password)) { QString n; QString e; QString encrypted_d; QString adminHint; if (asServer.getAdminBizCert(asServer.getToken(), bizGuid, n, e, encrypted_d, adminHint)) { QString d; if (WizAESDecryptBase64StringToString(adminPassword, encrypted_d, d) && !d.isEmpty()) { QString newEncrypted_d; if (WizAESEncryptStringToBase64String(userPassword, d, newEncrypted_d) && !newEncrypted_d.isEmpty()) { // if (asServer.setUserBizCert(bizGuid, n, e, newEncrypted_d, hint)) { if (m_pDb->setUserCert(n, e, newEncrypted_d, hint)) { m_userPassword = userPassword; ret = true; } else { error = tr("Can't save cert."); } } else { error = asServer.getLastErrorMessage(); } } else { error = tr("Can't encrypt cert."); } } else { error = tr("Invalid admin password."); } } else { error = asServer.getLastErrorMessage(); } } else { error = asServer.getLastErrorMessage(); } // ::WizExecuteOnThread(WIZ_THREAD_MAIN, [=]{ if (ret) { QDialog::accept(); } else { WizMessageBox::critical(this, error); } }); // }); }