mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 15:05:19 +03:00
HttpCreds: Add keychain failure hint. #3268
This commit is contained in:
parent
44870fae9f
commit
5d9e752c71
5 changed files with 26 additions and 12 deletions
|
@ -114,7 +114,7 @@ public:
|
|||
_sslTrusted(false)
|
||||
{}
|
||||
|
||||
QString queryPassword(bool *ok) Q_DECL_OVERRIDE {
|
||||
QString queryPassword(bool *ok, const QString&) Q_DECL_OVERRIDE {
|
||||
if (ok) {
|
||||
*ok = true;
|
||||
}
|
||||
|
|
|
@ -23,17 +23,24 @@ using namespace QKeychain;
|
|||
namespace OCC
|
||||
{
|
||||
|
||||
QString HttpCredentialsGui::queryPassword(bool *ok)
|
||||
QString HttpCredentialsGui::queryPassword(bool *ok, const QString& hint)
|
||||
{
|
||||
if (ok) {
|
||||
QString str = QInputDialog::getText(0, tr("Enter Password"),
|
||||
tr("Please enter %1 password:\n\nUser: %2\nAccount: %3\n")
|
||||
.arg(Theme::instance()->appNameGUI(), _user, _account->displayName()),
|
||||
QLineEdit::Password, _previousPassword, ok);
|
||||
return str;
|
||||
} else {
|
||||
if (!ok) {
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString msg = tr("Please enter %1 password:\n"
|
||||
"\n"
|
||||
"User: %2\n"
|
||||
"Account: %3\n")
|
||||
.arg(Theme::instance()->appNameGUI(), _user, _account->displayName());
|
||||
if (!hint.isEmpty()) {
|
||||
msg += QLatin1String("\n") + hint + QLatin1String("\n");
|
||||
}
|
||||
|
||||
return QInputDialog::getText(0, tr("Enter Password"), msg,
|
||||
QLineEdit::Password, _previousPassword,
|
||||
ok);
|
||||
}
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -28,7 +28,7 @@ class HttpCredentialsGui : public HttpCredentials {
|
|||
public:
|
||||
explicit HttpCredentialsGui() : HttpCredentials() {}
|
||||
HttpCredentialsGui(const QString& user, const QString& password, const QString& certificatePath, const QString& certificatePasswd) : HttpCredentials(user, password, certificatePath, certificatePasswd) {}
|
||||
QString queryPassword(bool *ok) Q_DECL_OVERRIDE;
|
||||
QString queryPassword(bool *ok, const QString& hint) Q_DECL_OVERRIDE;
|
||||
};
|
||||
|
||||
} // namespace OCC
|
||||
|
|
|
@ -284,8 +284,15 @@ void HttpCredentials::slotReadJobDone(QKeychain::Job *job)
|
|||
// NOT persisted into the new account.
|
||||
} else {
|
||||
// interactive password dialog starts here
|
||||
|
||||
QString hint;
|
||||
if (job->error() != EntryNotFound) {
|
||||
hint = tr("Reading from keychain failed with error: '%1'").arg(
|
||||
job->errorString());
|
||||
}
|
||||
|
||||
bool ok;
|
||||
QString pwd = queryPassword(&ok);
|
||||
QString pwd = queryPassword(&ok, hint);
|
||||
_fetchJobInProgress = false;
|
||||
if (ok) {
|
||||
_password = pwd;
|
||||
|
|
|
@ -49,7 +49,7 @@ public:
|
|||
void persist() Q_DECL_OVERRIDE;
|
||||
QString user() const Q_DECL_OVERRIDE;
|
||||
QString password() const;
|
||||
virtual QString queryPassword(bool *ok) = 0;
|
||||
virtual QString queryPassword(bool *ok, const QString& hint) = 0;
|
||||
void invalidateToken() Q_DECL_OVERRIDE;
|
||||
QString fetchUser();
|
||||
virtual bool sslIsTrusted() { return false; }
|
||||
|
|
Loading…
Reference in a new issue