Skip to content

Commit 63779f8

Browse files
committed
Restore previous active user on aborted login (#647)
1 parent 419f087 commit 63779f8

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

google-account-plugin/src/com/google/cloud/tools/intellij/login/IntellijGoogleLoginService.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ public void logIn(@Nullable final String message,
169169
@Nullable final IGoogleLoginCompletedCallback callback) {
170170
UsageTrackerProvider
171171
.getInstance().trackEvent(LoginTracking.CATEGORY, LoginTracking.LOGIN, "login.start", null);
172+
final CredentialedUser lastActiveUser = users.getActiveUser();
172173
users.removeActiveUser();
173174
uiFacade.notifyStatusIndicator();
174175

@@ -223,8 +224,19 @@ public void onLoginCompleted() {
223224
};
224225
users.addUser(new CredentialedUser(state, localCallback));
225226
}
226-
else if (callback != null) {
227-
callback.onLoginCompleted();
227+
else {
228+
// Login failed (or aborted), so restore the last active user, if any
229+
restoreLastActiveUser();
230+
231+
if (callback != null) {
232+
callback.onLoginCompleted();
233+
}
234+
}
235+
}
236+
237+
private void restoreLastActiveUser() {
238+
if (lastActiveUser != null) {
239+
setActiveUser(lastActiveUser.getEmail());
228240
}
229241
}
230242
}.queue();

0 commit comments

Comments
 (0)