Skip to content

Commit

Permalink
fix: force token refresh with lagoon login (#409)
Browse files Browse the repository at this point in the history
  • Loading branch information
shreddedbacon authored Dec 6, 2024
1 parent 2dacb03 commit 7829bdf
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
26 changes: 20 additions & 6 deletions cmd/login.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,22 @@ import (
)

var loginCmd = &cobra.Command{
Use: "login",
Short: "Log into a Lagoon instance",
Aliases: []string{"l"},
Run: func(cmd *cobra.Command, args []string) {
validateToken(lagoonCLIConfig.Current) // get a new token if the current one is invalid
fmt.Println("Token fetched and saved.")
Use: "login",
Short: "Login or refresh an authentication token",
Long: `Login or refresh an authentication token
This can be used to clear out and force your CLI to refresh a token for a given context.`,
Aliases: []string{"token-refresh", "tr", "l"},
RunE: func(cmd *cobra.Command, args []string) error {
// clear the current token
lc := lagoonCLIConfig.Lagoons[lagoonCLIConfig.Current]
lc.Token = ""
lagoonCLIConfig.Lagoons[lagoonCLIConfig.Current] = lc
// refresh and save new token
if err := validateTokenE(lagoonCLIConfig.Current); err != nil {
return err
}
fmt.Printf("token for context %s fetched and saved.\n", lagoonCLIConfig.Current)
return nil
},
}

Expand Down Expand Up @@ -181,3 +191,7 @@ func retrieveTokenViaSsh() (string, error) {
}
return strings.TrimSpace(string(out)), err
}

func init() {
loginCmd.Flags().Bool("reset-token", false, "clear the token before attempting to log in")
}
2 changes: 1 addition & 1 deletion docs/commands/lagoon.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ lagoon [flags]
* [lagoon import](lagoon_import.md) - Import a config from a yaml file
* [lagoon kibana](lagoon_kibana.md) - Launch the kibana interface
* [lagoon list](lagoon_list.md) - List projects, environments, deployments, variables or notifications
* [lagoon login](lagoon_login.md) - Log into a Lagoon instance
* [lagoon login](lagoon_login.md) - Login or refresh an authentication token
* [lagoon logs](lagoon_logs.md) - Display logs for a service of an environment and project
* [lagoon raw](lagoon_raw.md) - Run a custom query or mutation
* [lagoon reset-password](lagoon_reset-password.md) - Send a password reset email
Expand Down
10 changes: 8 additions & 2 deletions docs/commands/lagoon_login.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
## lagoon login

Log into a Lagoon instance
Login or refresh an authentication token

### Synopsis

Login or refresh an authentication token
This can be used to clear out and force your CLI to refresh a token for a given context.

```
lagoon login [flags]
Expand All @@ -9,7 +14,8 @@ lagoon login [flags]
### Options

```
-h, --help help for login
-h, --help help for login
--reset-token clear the token before attempting to log in
```

### Options inherited from parent commands
Expand Down

0 comments on commit 7829bdf

Please sign in to comment.