Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamila San <hello@camila.codes>2019-07-24 14:56:21 +0300
committerCamila San <hello@camila.codes>2019-10-17 21:11:31 +0300
commit19491ff85f3cd02952478d2ee1fb42caf252e9dd (patch)
treefd9bc6d7ca455e05a8cd8c5fafae4fc0eca2f792 /src/gui/accountsettings.cpp
parent08c7be5350c949b15776ab52a2b7bf637f3e02a4 (diff)
Once client gets 401/403 from the server, check if remote wipe was requested.
- When the the users logs because of 401 or 403 errors, it checks if the server requested the remote wipe. If yes, locally deletes account and folders connected to the account and notify the server. If no, proceeds to ask the user to login again. - The app password is restored in the keychain. - WIP: The change also includes a test class for RemoteWipe. Signed-off-by: Camila San <hello@camila.codes>
Diffstat (limited to 'src/gui/accountsettings.cpp')
-rw-r--r--src/gui/accountsettings.cpp44
1 files changed, 23 insertions, 21 deletions
diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp
index 2fc324573..a7b39d606 100644
--- a/src/gui/accountsettings.cpp
+++ b/src/gui/accountsettings.cpp
@@ -147,6 +147,8 @@ AccountSettings::AccountSettings(AccountState *accountState, QWidget *parent)
createAccountToolbox();
connect(AccountManager::instance(), &AccountManager::accountAdded,
this, &AccountSettings::slotAccountAdded);
+ connect(this, &AccountSettings::removeAccountFolders,
+ AccountManager::instance(), &AccountManager::removeAccountFolders);
connect(ui->_folderList, &QWidget::customContextMenuRequested,
this, &AccountSettings::slotCustomContextMenuRequested);
connect(ui->_folderList, &QAbstractItemView::clicked,
@@ -334,9 +336,9 @@ void AccountSettings::slotEncryptionFlagError(const QByteArray& fileId, int http
void AccountSettings::slotLockForEncryptionSuccess(const QByteArray& fileId, const QByteArray &token)
{
- accountsState()->account()->e2e()->setTokenForFolder(fileId, token);
+ accountsState()->account()->e2e()->setTokenForFolder(fileId, token);
- FolderMetadata emptyMetadata(accountsState()->account());
+ FolderMetadata emptyMetadata(accountsState()->account());
auto encryptedMetadata = emptyMetadata.encryptedMetadata();
if (encryptedMetadata.isEmpty()) {
//TODO: Mark the folder as unencrypted as the metadata generation failed.
@@ -348,36 +350,36 @@ void AccountSettings::slotLockForEncryptionSuccess(const QByteArray& fileId, con
return;
}
auto storeMetadataJob = new StoreMetaDataApiJob(accountsState()->account(), fileId, emptyMetadata.encryptedMetadata());
- connect(storeMetadataJob, &StoreMetaDataApiJob::success,
- this, &AccountSettings::slotUploadMetadataSuccess);
- connect(storeMetadataJob, &StoreMetaDataApiJob::error,
- this, &AccountSettings::slotUpdateMetadataError);
+ connect(storeMetadataJob, &StoreMetaDataApiJob::success,
+ this, &AccountSettings::slotUploadMetadataSuccess);
+ connect(storeMetadataJob, &StoreMetaDataApiJob::error,
+ this, &AccountSettings::slotUpdateMetadataError);
- storeMetadataJob->start();
+ storeMetadataJob->start();
}
void AccountSettings::slotUploadMetadataSuccess(const QByteArray& folderId)
{
- const auto token = accountsState()->account()->e2e()->tokenForFolder(folderId);
- auto unlockJob = new UnlockEncryptFolderApiJob(accountsState()->account(), folderId, token);
- connect(unlockJob, &UnlockEncryptFolderApiJob::success,
- this, &AccountSettings::slotUnlockFolderSuccess);
- connect(unlockJob, &UnlockEncryptFolderApiJob::error,
- this, &AccountSettings::slotUnlockFolderError);
- unlockJob->start();
+ const auto token = accountsState()->account()->e2e()->tokenForFolder(folderId);
+ auto unlockJob = new UnlockEncryptFolderApiJob(accountsState()->account(), folderId, token);
+ connect(unlockJob, &UnlockEncryptFolderApiJob::success,
+ this, &AccountSettings::slotUnlockFolderSuccess);
+ connect(unlockJob, &UnlockEncryptFolderApiJob::error,
+ this, &AccountSettings::slotUnlockFolderError);
+ unlockJob->start();
}
void AccountSettings::slotUpdateMetadataError(const QByteArray& folderId, int httpReturnCode)
{
Q_UNUSED(httpReturnCode);
- const auto token = accountsState()->account()->e2e()->tokenForFolder(folderId);
- auto unlockJob = new UnlockEncryptFolderApiJob(accountsState()->account(), folderId, token);
- connect(unlockJob, &UnlockEncryptFolderApiJob::success,
- this, &AccountSettings::slotUnlockFolderSuccess);
- connect(unlockJob, &UnlockEncryptFolderApiJob::error,
- this, &AccountSettings::slotUnlockFolderError);
- unlockJob->start();
+ const auto token = accountsState()->account()->e2e()->tokenForFolder(folderId);
+ auto unlockJob = new UnlockEncryptFolderApiJob(accountsState()->account(), folderId, token);
+ connect(unlockJob, &UnlockEncryptFolderApiJob::success,
+ this, &AccountSettings::slotUnlockFolderSuccess);
+ connect(unlockJob, &UnlockEncryptFolderApiJob::error,
+ this, &AccountSettings::slotUnlockFolderError);
+ unlockJob->start();
}
void AccountSettings::slotLockForEncryptionError(const QByteArray& fileId, int httpErrorCode)