Skip to content

Commit 621330c

Browse files
authoredNov 4, 2024··
feat: add prompting to confirm account token deletion (#20654)
Signed-off-by: pashakostohrys <pavel@codefresh.io>
1 parent 8cf990b commit 621330c

File tree

2 files changed

+29
-14
lines changed

2 files changed

+29
-14
lines changed
 

‎cmd/argocd/commands/account.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"sigs.k8s.io/yaml"
1818

1919
"github.com/argoproj/argo-cd/v2/cmd/argocd/commands/headless"
20+
"github.com/argoproj/argo-cd/v2/cmd/argocd/commands/utils"
2021
argocdclient "github.com/argoproj/argo-cd/v2/pkg/apiclient"
2122
accountpkg "github.com/argoproj/argo-cd/v2/pkg/apiclient/account"
2223
"github.com/argoproj/argo-cd/v2/pkg/apiclient/session"
@@ -432,8 +433,14 @@ argocd account delete-token --account <account-name> ID`,
432433
if account == "" {
433434
account = getCurrentAccount(ctx, clientset).Username
434435
}
435-
_, err := client.DeleteToken(ctx, &accountpkg.DeleteTokenRequest{Name: account, Id: id})
436-
errors.CheckError(err)
436+
promptUtil := utils.NewPrompt(clientOpts.PromptsEnabled)
437+
canDelete := promptUtil.Confirm(fmt.Sprintf("Are you sure you want to delete '%s' token? [y/n]", id))
438+
if canDelete {
439+
_, err := client.DeleteToken(ctx, &accountpkg.DeleteTokenRequest{Name: account, Id: id})
440+
errors.CheckError(err)
441+
} else {
442+
fmt.Printf("The command to delete '%s' was cancelled.\n", id)
443+
}
437444
},
438445
}
439446
cmd.Flags().StringVarP(&account, "account", "a", "", "Account name. Defaults to the current account.")

‎cmd/argocd/commands/logout.go

+20-12
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
log "github.com/sirupsen/logrus"
88
"github.com/spf13/cobra"
99

10+
"github.com/argoproj/argo-cd/v2/cmd/argocd/commands/utils"
1011
argocdclient "github.com/argoproj/argo-cd/v2/pkg/apiclient"
1112
"github.com/argoproj/argo-cd/v2/util/errors"
1213
"github.com/argoproj/argo-cd/v2/util/localconfig"
@@ -35,19 +36,26 @@ $ argocd logout
3536
log.Fatalf("Nothing to logout from")
3637
}
3738

38-
ok := localCfg.RemoveToken(context)
39-
if !ok {
40-
log.Fatalf("Context %s does not exist", context)
39+
promptUtil := utils.NewPrompt(globalClientOpts.PromptsEnabled)
40+
41+
canLogout := promptUtil.Confirm(fmt.Sprintf("Are you sure you want to log out from '%s'?", context))
42+
if canLogout {
43+
ok := localCfg.RemoveToken(context)
44+
if !ok {
45+
log.Fatalf("Context %s does not exist", context)
46+
}
47+
48+
err = localconfig.ValidateLocalConfig(*localCfg)
49+
if err != nil {
50+
log.Fatalf("Error in logging out: %s", err)
51+
}
52+
err = localconfig.WriteLocalConfig(*localCfg, globalClientOpts.ConfigPath)
53+
errors.CheckError(err)
54+
55+
fmt.Printf("Logged out from '%s'\n", context)
56+
} else {
57+
log.Infof("Logout from '%s' cancelled", context)
4158
}
42-
43-
err = localconfig.ValidateLocalConfig(*localCfg)
44-
if err != nil {
45-
log.Fatalf("Error in logging out: %s", err)
46-
}
47-
err = localconfig.WriteLocalConfig(*localCfg, globalClientOpts.ConfigPath)
48-
errors.CheckError(err)
49-
50-
fmt.Printf("Logged out from '%s'\n", context)
5159
},
5260
}
5361
return command

0 commit comments

Comments
 (0)
Please sign in to comment.