login and user update commands support for existing domain override methods

This commit is contained in:
quinton11
2023-04-19 19:41:14 +00:00
parent c1b97841cf
commit d4206cdbd8
4 changed files with 68 additions and 11 deletions
+44 -7
View File
@@ -65,10 +65,29 @@ var loginCmd = &cobra.Command{
} }
} }
//override domain
domainQuery := true
if config.INFISICAL_URL_MANUAL_OVERRIDE != util.INFISICAL_DEFAULT_API_URL {
overrideDomain, err := DomainOverridePrompt()
if err != nil {
util.HandleError(err)
}
//if not override set INFISICAL_URL to exported var
//set domainQuery to false
if !overrideDomain {
domainQuery = false
config.INFISICAL_URL = config.INFISICAL_URL_MANUAL_OVERRIDE
}
}
//prompt user to select domain between Infisical cloud and self hosting //prompt user to select domain between Infisical cloud and self hosting
err = askForDomain() if domainQuery {
if err != nil { err = askForDomain()
util.HandleError(err, "Unable to parse domain url") if err != nil {
util.HandleError(err, "Unable to parse domain url")
}
} }
email, password, err := askForLoginCredentials() email, password, err := askForLoginCredentials()
@@ -264,6 +283,27 @@ func init() {
rootCmd.AddCommand(loginCmd) rootCmd.AddCommand(loginCmd)
} }
func DomainOverridePrompt() (bool, error) {
var (
PRESET = "Use Domain"
OVERRIDE = "Change Domain"
)
options := []string{PRESET, OVERRIDE}
optionsPrompt := promptui.Select{
Label: fmt.Sprintf("Current INFISICAL_API_URL Domain Override: %s", config.INFISICAL_URL_MANUAL_OVERRIDE),
Items: options,
Size: 2,
}
_, selectedOption, err := optionsPrompt.Run()
if err != nil {
return false, err
}
return selectedOption == OVERRIDE, err
}
func askForDomain() error { func askForDomain() error {
//query user to choose between Infisical cloud or self hosting //query user to choose between Infisical cloud or self hosting
var ( var (
@@ -405,10 +445,7 @@ func getFreshUserCredentials(email string, password string) (*api.GetLoginOneV2R
} }
func userLoginMenu(currentLoggedInUserEmail string) (bool, error) { func userLoginMenu(currentLoggedInUserEmail string) (bool, error) {
label := fmt.Sprintf("Current logged in user email: %s", currentLoggedInUserEmail) label := fmt.Sprintf("Current logged in user email: %s on domain: %s", currentLoggedInUserEmail, config.INFISICAL_URL)
if config.INFISICAL_URL != "" {
label = fmt.Sprintf("%s on domain: %s", label, config.INFISICAL_URL)
}
prompt := promptui.Select{ prompt := promptui.Select{
Label: label, Label: label,
+22 -4
View File
@@ -111,10 +111,28 @@ var domainCmd = &cobra.Command{
util.HandleError(err, "[infisical user update domain]: Prompt error") util.HandleError(err, "[infisical user update domain]: Prompt error")
} }
//prompt to update domain domain := ""
domain, err := NewDomainPrompt() domainQuery := true
if err != nil { if config.INFISICAL_URL_MANUAL_OVERRIDE != util.INFISICAL_DEFAULT_API_URL {
util.HandleError(err, "[infisical user update domain]: Prompt error")
override, err := DomainOverridePrompt()
if err != nil {
util.HandleError(err, "[infisical user update domain]: Domain override prompt error")
}
if !override {
domainQuery = false
domain = config.INFISICAL_URL_MANUAL_OVERRIDE
}
}
if domainQuery {
//prompt to update domain
domain, err = NewDomainPrompt()
if err != nil {
util.HandleError(err, "[infisical user update domain]: Prompt error")
}
} }
//write to config file //write to config file
+1
View File
@@ -1,3 +1,4 @@
package config package config
var INFISICAL_URL string var INFISICAL_URL string
var INFISICAL_URL_MANUAL_OVERRIDE string
+1
View File
@@ -91,6 +91,7 @@ func GetCurrentLoggedInUserDetails() (LoggedInUserDetails, error) {
//configFile.LoggedInUserDomain //configFile.LoggedInUserDomain
//if not empty set as infisical url //if not empty set as infisical url
if configFile.LoggedInUserDomain != "" { if configFile.LoggedInUserDomain != "" {
config.INFISICAL_URL_MANUAL_OVERRIDE = config.INFISICAL_URL
config.INFISICAL_URL = configFile.LoggedInUserDomain config.INFISICAL_URL = configFile.LoggedInUserDomain
} }