diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt index f540bfeca8f..c31d2445652 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowFactory.kt @@ -152,7 +152,7 @@ class AmazonQToolWindowFactory : ToolWindowFactory, DumbAware { QWebviewPanel.getInstance(project).browser?.prepareBrowser(BrowserState(FeatureId.AmazonQ)) // isQConnected alone is not robust and there is race condition (read/update connection states) - val component = if (isNewConnectionForQ || (isQConnected(project) && !isQExpired(project))) { + val component = if ((isQConnected(project) && !isQExpired(project))) { LOG.debug { "returning Q-chat window; isQConnection=$isNewConnectionForQ; hasPinnedConnection=$isNewConnectionForQ" } AmazonQToolWindow.getInstance(project).component } else { diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt index 4dcdf299d79..d08653974cf 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManager.kt @@ -21,6 +21,7 @@ import software.aws.toolkits.core.utils.info import software.aws.toolkits.core.utils.warn import software.aws.toolkits.jetbrains.core.credentials.pinning.FeatureWithPinnedConnection import software.aws.toolkits.jetbrains.core.credentials.profiles.ProfileCredentialsIdentifierSso +import software.aws.toolkits.jetbrains.core.credentials.profiles.ProfileWatcher import software.aws.toolkits.jetbrains.core.credentials.profiles.SsoSessionConstants.SSO_SESSION_SECTION_NAME import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenAuthState import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenProvider @@ -206,14 +207,9 @@ fun loginSso( @Suppress("UnusedParameter") fun logoutFromSsoConnection(project: Project?, connection: AwsBearerTokenConnection, callback: () -> Unit = {}) { - try { - ToolkitAuthManager.getInstance().deleteConnection(connection.id) - if (connection is ProfileSsoManagedBearerSsoConnection) { - deleteSsoConnection(connection) - } - } finally { - callback() - } + ToolkitAuthManager.getInstance().deleteConnection(connection.id) + ProfileWatcher.getInstance().forceRefresh() + callback() } fun lazyGetUnauthedBearerConnections() = diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/actions/SsoLogoutAction.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/actions/SsoLogoutAction.kt index 1c03c39b87d..78b8749fd96 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/actions/SsoLogoutAction.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/actions/SsoLogoutAction.kt @@ -6,9 +6,7 @@ package software.aws.toolkits.jetbrains.core.credentials.actions import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.project.DumbAwareAction -import com.intellij.openapi.ui.MessageDialogBuilder import software.aws.toolkits.jetbrains.core.credentials.AwsBearerTokenConnection -import software.aws.toolkits.jetbrains.core.credentials.ProfileSsoManagedBearerSsoConnection import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManagerListener import software.aws.toolkits.jetbrains.core.credentials.logoutFromSsoConnection import software.aws.toolkits.resources.AwsCoreBundle @@ -17,15 +15,6 @@ import software.aws.toolkits.telemetry.UiTelemetry class SsoLogoutAction(private val value: AwsBearerTokenConnection) : DumbAwareAction(AwsCoreBundle.message("credentials.individual_identity.signout")) { override fun actionPerformed(e: AnActionEvent) { UiTelemetry.click(e.project, "signOut") - if (value is ProfileSsoManagedBearerSsoConnection) { - val confirmDeletion = MessageDialogBuilder.okCancel( - AwsCoreBundle.message("gettingstarted.auth.idc.sign.out.confirmation.title"), - AwsCoreBundle.message("gettingstarted.auth.idc.sign.out.confirmation") - ).yesText(AwsCoreBundle.message("general.confirm")).ask(e.project) - if (!confirmDeletion) { - return - } - } logoutFromSsoConnection(e.project, value) ApplicationManager.getApplication().messageBus.syncPublisher( ToolkitConnectionManagerListener.TOPIC