Disable server-side material DELETE operations across multiple workflows; restrict DELETE to card toggling in AccountSettingsWindow.
This commit is contained in:
parent
569eefb3e8
commit
0168cf7610
@ -1952,6 +1952,10 @@ void NetworkService::onDeviceWentOffline(const QString &deviceId) {
|
||||
QSharedPointer<QMutex> mtx = keyMutex(deviceId, app.bankProfileId);
|
||||
QMutexLocker locker(mtx.data());
|
||||
|
||||
// [ОТКЛЮЧЕНО] Серверный DELETE материала при уходе устройства в офлайн убран.
|
||||
// DELETE материала на сервере выполняется только при переключении карты в
|
||||
// настройках банка (AccountSettingsWindow::toggleMaterialStatus).
|
||||
/*
|
||||
const QList<MaterialInfo> materials = MaterialDAO::getAccounts(deviceId, app.code);
|
||||
for (const MaterialInfo &mat : materials) {
|
||||
if (mat.materialId.isEmpty()) continue;
|
||||
@ -1965,6 +1969,7 @@ void NetworkService::onDeviceWentOffline(const QString &deviceId) {
|
||||
<< mat.materialId;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
const QString path = m_apiBase + m_pathBankProfile + "/" + app.bankProfileId + "/false";
|
||||
patchJson(path, QJsonObject(), true);
|
||||
@ -2099,6 +2104,10 @@ void NetworkService::disableAllProfilesOnServer() {
|
||||
const QString bpState = bp["state"].toString();
|
||||
if (bpId.isEmpty()) continue;
|
||||
|
||||
// [ОТКЛЮЧЕНО] Серверный DELETE материала при shutdown убран. DELETE материала
|
||||
// на сервере выполняется только при переключении карты в настройках банка
|
||||
// (AccountSettingsWindow::toggleMaterialStatus).
|
||||
/*
|
||||
// Сперва DELETE всех материалов профиля — инвариант «материал живёт на
|
||||
// сервере только при локально active профиле». Идём по списку с сервера,
|
||||
// чтобы зацепить и те, что локально потеряли materialId, но на бэке остались.
|
||||
@ -2116,6 +2125,7 @@ void NetworkService::disableAllProfilesOnServer() {
|
||||
qWarning() << "[shutdown] DELETE failed for material" << matId;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
if (bpState != "disabled") {
|
||||
patchJson(m_apiBase + m_pathBankProfile + "/" + bpId + "/false", QJsonObject(), true);
|
||||
|
||||
@ -280,6 +280,11 @@ void AccountSettingsWindow::toggleProfileStatus() {
|
||||
}
|
||||
};
|
||||
} else {
|
||||
// [ОТКЛЮЧЕНО] Серверный DELETE материала при выключении профиля убран.
|
||||
// DELETE материала на сервере выполняется только при переключении карты
|
||||
// в настройках банка (toggleMaterialStatus).
|
||||
onSuccess = []() {};
|
||||
/*
|
||||
onSuccess = [this, deviceId, appCode]() {
|
||||
const QList<MaterialInfo> materials = MaterialDAO::getAccounts(deviceId, appCode);
|
||||
for (const auto &mat : materials) {
|
||||
@ -298,6 +303,7 @@ void AccountSettingsWindow::toggleProfileStatus() {
|
||||
qDebug() << "[AccountSettings] Deleting material on profile-disable:" << mat.materialId;
|
||||
}
|
||||
};
|
||||
*/
|
||||
}
|
||||
sendAppStatus(newStatus, std::move(onSuccess));
|
||||
}
|
||||
|
||||
@ -674,6 +674,11 @@ void BankSetupWizard::applyActiveCardSelection() {
|
||||
return;
|
||||
}
|
||||
|
||||
// [ОТКЛЮЧЕНО] Серверный DELETE материала в мастере настройки убран — DELETE
|
||||
// материала на сервере выполняется только при переключении карты в настройках
|
||||
// банка (AccountSettingsWindow::toggleMaterialStatus). Сразу выполняем POST.
|
||||
launchPost();
|
||||
/*
|
||||
auto remaining = QSharedPointer<int>::create(toDelete.size());
|
||||
for (const MaterialInfo &m : toDelete) {
|
||||
auto *t = new QThread;
|
||||
@ -691,6 +696,7 @@ void BankSetupWizard::applyActiveCardSelection() {
|
||||
QObject::connect(t, &QThread::finished, t, &QThread::deleteLater);
|
||||
t->start();
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
static QString humanReadableError(const QString &error) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user