mirror of
https://github.com/nextcloud/desktop.git
synced 2024-12-13 15:46:01 +03:00
[CSE] Display menu for encrytp / decryot folders
If the server supports client syde encryption, display a menu on right click that should display encrypt and decrypt. ideally it would show the encrypt if the folder is decrypted, and decrypt if the folder is encrypted but currently there's no way for the client to know that.
This commit is contained in:
parent
1c32f6bb2e
commit
9318c487b9
5 changed files with 42 additions and 1 deletions
|
@ -275,6 +275,23 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
|
|||
ac->setEnabled(false);
|
||||
}
|
||||
|
||||
qCInfo(lcAccountSettings) << "Display Client Side Encryption Options"
|
||||
<< accountsState()->account()->hasClientSideEncryption();
|
||||
|
||||
if (accountsState()->account()->hasClientSideEncryption()) {
|
||||
ac = menu->addAction(tr("Encrypt"));
|
||||
connect(ac, &QAction::triggered, [this, &index](bool triggered) {
|
||||
Q_UNUSED(triggered);
|
||||
|
||||
});
|
||||
|
||||
ac = menu->addAction(tr("Decrypt"));
|
||||
connect(ac, &QAction::triggered, [this, &index](bool triggered) {
|
||||
Q_UNUSED(triggered);
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
menu->exec(QCursor::pos());
|
||||
|
||||
return;
|
||||
|
@ -701,6 +718,15 @@ void AccountSettings::slotAccountStateChanged()
|
|||
_toggleSignInOutAction->setText(tr("Log out"));
|
||||
}
|
||||
}
|
||||
|
||||
if (state == AccountState::State::Connected) {
|
||||
/* TODO: We should probably do something better here.
|
||||
* Verify if the user has a private key already uploaded to the server,
|
||||
* if it has, do not offer to create one.
|
||||
*/
|
||||
qCInfo(lcAccountSettings) << "Accout" << accountsState()->account()->displayName()
|
||||
<< "Client Side Encryption" << accountsState()->account()->hasClientSideEncryption();
|
||||
}
|
||||
}
|
||||
|
||||
void AccountSettings::slotLinkActivated(const QString &link)
|
||||
|
|
|
@ -62,6 +62,8 @@ public:
|
|||
bool paused;
|
||||
/// whether the folder syncs hidden files
|
||||
bool ignoreHiddenFiles;
|
||||
/// the folder has client side encryption
|
||||
bool isClientSideEncrypted;
|
||||
|
||||
/// Saves the folder definition, creating a new settings group.
|
||||
static void save(QSettings &settings, const FolderDefinition &folder);
|
||||
|
|
|
@ -484,5 +484,14 @@ void Account::setNonShib(bool nonShib)
|
|||
}
|
||||
}
|
||||
|
||||
bool Account::hasClientSideEncryption() const
|
||||
{
|
||||
return _hasClientSideEncryption;
|
||||
}
|
||||
|
||||
void Account::setHasClientSideEncryption(bool cse)
|
||||
{
|
||||
_hasClientSideEncryption = cse;
|
||||
}
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -225,6 +225,9 @@ public:
|
|||
/// Called by network jobs on credential errors, emits invalidCredentials()
|
||||
void handleInvalidCredentials();
|
||||
|
||||
bool hasClientSideEncryption() const;
|
||||
void setHasClientSideEncryption(bool cse);
|
||||
|
||||
public slots:
|
||||
/// Used when forgetting credentials
|
||||
void clearQNAMCache();
|
||||
|
@ -275,6 +278,7 @@ private:
|
|||
QSharedPointer<QNetworkAccessManager> _am;
|
||||
QScopedPointer<AbstractCredentials> _credentials;
|
||||
bool _http2Supported = false;
|
||||
bool _hasClientSideEncryption;
|
||||
|
||||
/// Certificates that were explicitly rejected by the user
|
||||
QList<QSslCertificate> _rejectedCertificates;
|
||||
|
|
|
@ -263,7 +263,7 @@ void ConnectionValidator::checkClientSideEncryption()
|
|||
}
|
||||
}
|
||||
|
||||
// _account->setHasClientSideEncryption(hasClientSideEncryption);
|
||||
_account->setHasClientSideEncryption(hasClientSideEncryption);
|
||||
});
|
||||
job->start();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue