diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/accountstate.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/src/gui/accountstate.cpp b/src/gui/accountstate.cpp index d2ae79394..cdab097f7 100644 --- a/src/gui/accountstate.cpp +++ b/src/gui/accountstate.cpp @@ -385,23 +385,21 @@ void AccountState::slotConnectionValidatorResult(ConnectionValidator::Status sta void AccountState::slotInvalidCredentials() { - if (isSignedOut() || _waitingForNewCredentials) - return; - - qCInfo(lcAccountState) << "Invalid credentials for" << _account->url().toString() - << "asking user"; + if (!_waitingForNewCredentials) { + qCInfo(lcAccountState) << "Invalid credentials for" << _account->url().toString() + << "asking user"; - _waitingForNewCredentials = true; - setState(AskingCredentials); - - if (account()->credentials()->ready()) { - account()->credentials()->invalidateToken(); - } - if (auto creds = qobject_cast<HttpCredentials *>(account()->credentials())) { - if (creds->refreshAccessToken()) - return; + _waitingForNewCredentials = true; + if (account()->credentials()->ready()) { + account()->credentials()->invalidateToken(); + } + if (auto creds = qobject_cast<HttpCredentials *>(account()->credentials())) { + if (creds->refreshAccessToken()) + return; + } + account()->credentials()->askFromUser(); } - account()->credentials()->askFromUser(); + setState(AskingCredentials); } void AccountState::slotCredentialsFetched(AbstractCredentials *) |