aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud/storage.cpp
diff options
context:
space:
mode:
authorAlexander Tkachev2019-07-27 22:44:15 +0700
committerMatan Bareket2019-07-30 14:51:41 -0400
commitf6a17e679f4fac2fda21dc7f64565a0dc4a10ca1 (patch)
tree115b53d284e100ae04914ac90c1a4823ef95fb4f /backends/cloud/storage.cpp
parent85431c39bf191725910703f699fe95da595f6adf (diff)
downloadscummvm-rg350-f6a17e679f4fac2fda21dc7f64565a0dc4a10ca1.tar.gz
scummvm-rg350-f6a17e679f4fac2fda21dc7f64565a0dc4a10ca1.tar.bz2
scummvm-rg350-f6a17e679f4fac2fda21dc7f64565a0dc4a10ca1.zip
CLOUD: Ask user to manually enable Storage
For more security, newly connected Storage only gets username/used space information and is disabled until user manually presses the button.
Diffstat (limited to 'backends/cloud/storage.cpp')
-rw-r--r--backends/cloud/storage.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/backends/cloud/storage.cpp b/backends/cloud/storage.cpp
index 3a9ae53a43..ed7f8f0ae7 100644
--- a/backends/cloud/storage.cpp
+++ b/backends/cloud/storage.cpp
@@ -34,10 +34,18 @@ namespace Cloud {
Storage::Storage():
_runningRequestsCount(0), _savesSyncRequest(nullptr), _syncRestartRequestsed(false),
- _downloadFolderRequest(nullptr) {}
+ _downloadFolderRequest(nullptr), _isEnabled(false) {}
Storage::~Storage() {}
+bool Storage::isEnabled() const {
+ return _isEnabled;
+}
+
+void Storage::enable() {
+ _isEnabled = true;
+}
+
Networking::ErrorCallback Storage::getErrorPrintingCallback() {
return new Common::Callback<Storage, Networking::ErrorResponse>(this, &Storage::printErrorResponse);
}
@@ -121,6 +129,12 @@ Networking::Request *Storage::downloadById(Common::String remoteId, Common::Stri
}
Networking::Request *Storage::downloadFolder(Common::String remotePath, Common::String localPath, FileArrayCallback callback, Networking::ErrorCallback errorCallback, bool recursive) {
+ if (!_isEnabled) {
+ warning("Storage::downloadFolder: cannot be run while Storage is disabled");
+ if (errorCallback)
+ (*errorCallback)(Networking::ErrorResponse(nullptr, false, true, "Storage is disabled.", -1));
+ return nullptr;
+ }
if (!errorCallback)
errorCallback = getErrorPrintingCallback();
return addRequest(new FolderDownloadRequest(this, callback, errorCallback, remotePath, localPath, recursive));
@@ -128,6 +142,13 @@ Networking::Request *Storage::downloadFolder(Common::String remotePath, Common::
SavesSyncRequest *Storage::syncSaves(BoolCallback callback, Networking::ErrorCallback errorCallback) {
_runningRequestsMutex.lock();
+ if (!_isEnabled) {
+ warning("Storage::syncSaves: cannot be run while Storage is disabled");
+ if (errorCallback)
+ (*errorCallback)(Networking::ErrorResponse(nullptr, false, true, "Storage is disabled.", -1));
+ _runningRequestsMutex.unlock();
+ return nullptr;
+ }
if (_savesSyncRequest) {
warning("Storage::syncSaves: there is a sync in progress already");
_syncRestartRequestsed = true;