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