From: Claudio Cambra Date: Mon, 28 Nov 2022 14:09:20 +0000 (+0100) Subject: Prevent bad encrypting of folder if E2EE has not been correctly set up X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~11^2~107^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a243f7c4d1437f508b501dfc01173f60cbb881a8;p=nextcloud-desktop.git Prevent bad encrypting of folder if E2EE has not been correctly set up Signed-off-by: Claudio Cambra --- diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index cf2103a70..2f7ed10b5 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -321,7 +321,7 @@ void AccountSettings::doExpand() } } -bool AccountSettings::canEncryptOrDecrypt (const FolderStatusModel::SubFolderInfo* info) { +bool AccountSettings::canEncryptOrDecrypt(const FolderStatusModel::SubFolderInfo* info) { if (info->_folder->syncResult().status() != SyncResult::Status::Success) { QMessageBox msgBox; msgBox.setText("Please wait for the folder to sync before trying to encrypt it."); @@ -329,6 +329,27 @@ bool AccountSettings::canEncryptOrDecrypt (const FolderStatusModel::SubFolderInf return false; } + if (!_accountState->account()->e2e() || _accountState->account()->e2e()->_mnemonic.isEmpty()) { + QMessageBox msgBox; + msgBox.setText(tr("End-to-end encryption is not configured on this device. " + "Once it is configured, you will be able to encrypt this folder.\n" + "Would you like to set up end-to-end encryption?")); + msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); + msgBox.setDefaultButton(QMessageBox::Ok); + const auto ret = msgBox.exec(); + + switch (ret) { + case QMessageBox::Ok: + slotE2eEncryptionGenerateKeys(); + break; + case QMessageBox::Cancel: + default: + break; + } + + return false; + } + // for some reason the actual folder in disk is info->_folder->path + info->_path. QDir folderPath(info->_folder->path() + info->_path); folderPath.setFilter( QDir::AllEntries | QDir::NoDotAndDotDot );