feat: CLI support for multiple user accounts logins

See #340
This commit is contained in:
quinton11
2023-04-04 16:27:47 +00:00
parent cca9476975
commit 5508434563
6 changed files with 152 additions and 13 deletions
+27 -4
View File
@@ -48,14 +48,24 @@ var loginCmd = &cobra.Command{
util.HandleError(err)
}
if currentLoggedInUserDetails.IsUserLoggedIn && !currentLoggedInUserDetails.LoginExpired && len(currentLoggedInUserDetails.UserCredentials.PrivateKey) != 0 {
shouldOverride, err := shouldOverrideLoginPrompt(currentLoggedInUserDetails.UserCredentials.Email)
addUser := false
if currentLoggedInUserDetails.UserCredentials.Email != "" {
addUser, err = addNewUserPrompt()
if err != nil {
util.HandleError(err)
}
}
if !shouldOverride {
return
if !addUser {
if currentLoggedInUserDetails.IsUserLoggedIn && !currentLoggedInUserDetails.LoginExpired && len(currentLoggedInUserDetails.UserCredentials.PrivateKey) != 0 {
shouldOverride, err := shouldOverrideLoginPrompt(currentLoggedInUserDetails.UserCredentials.Email)
if err != nil {
util.HandleError(err)
}
if !shouldOverride {
return
}
}
}
@@ -342,6 +352,19 @@ func getFreshUserCredentials(email string, password string) (*api.GetLoginOneV2R
return &loginOneResponseResult, &loginTwoResponseResult, nil
}
func addNewUserPrompt() (bool, error) {
prompt := promptui.Select{
Label: "Infisical detects previous logged in users. Would you like to add a new user? Select[Yes/No]",
Items: []string{"No", "Yes"},
}
_, result, err := prompt.Run()
if err != nil {
return false, err
}
return result == "Yes", err
}
func shouldOverrideLoginPrompt(currentLoggedInUserEmail string) (bool, error) {
prompt := promptui.Select{
Label: fmt.Sprintf("There seems to be a user already logged in with the email: %s. Would you like to override that login? Select[Yes/No]", currentLoggedInUserEmail),