Merge pull request #5223 from nextcloud/bugfix/prevent-encryption-folder-if-e2e-unsetup

Prevent bad encrypting of folder if E2EE has not been correctly set up
This commit is contained in:
Claudio Cambra 2022-11-28 18:22:36 +01:00 коммит произвёл GitHub
Родитель 06937cbd09 a243f7c4d1
Коммит 5d0c97e214
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 22 добавлений и 1 удалений

Просмотреть файл

@ -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 );