host API support for login and switch commands

This commit is contained in:
quinton11
2023-04-18 12:03:03 +00:00
parent 4c41a7f1cf
commit be2cf54d6e
6 changed files with 201 additions and 23 deletions

View File

@@ -7,6 +7,7 @@ import (
"os"
"path/filepath"
"github.com/Infisical/infisical-merge/packages/config"
"github.com/Infisical/infisical-merge/packages/models"
log "github.com/sirupsen/logrus"
)
@@ -31,25 +32,25 @@ func WriteInitalConfig(userCredentials *models.UserCredentials) error {
return fmt.Errorf("writeInitalConfig: unable to write config file because [err=%s]", err)
}
//if empty, initialize
if existingConfigFile.LoggedInUsersEmail == nil {
existingConfigFile.LoggedInUsersEmail = []string{}
}
//if profiles exists
if len(existingConfigFile.LoggedInUsersEmail) > 0 {
ok := Contains(existingConfigFile.LoggedInUsersEmail, userCredentials.Email)
loggedInUser := models.LoggedInUser{
Email: userCredentials.Email,
Domain: config.INFISICAL_URL,
}
if len(existingConfigFile.LoggedInUsers) > 0 {
ok := ConfigContainsEmail(existingConfigFile.LoggedInUsers, userCredentials.Email)
if !ok {
existingConfigFile.LoggedInUsersEmail = append(existingConfigFile.LoggedInUsersEmail, userCredentials.Email)
existingConfigFile.LoggedInUsers = append(existingConfigFile.LoggedInUsers, loggedInUser)
}
} else {
existingConfigFile.LoggedInUsersEmail = append(existingConfigFile.LoggedInUsersEmail, userCredentials.Email)
existingConfigFile.LoggedInUsers = append(existingConfigFile.LoggedInUsers, loggedInUser)
}
configFile := models.ConfigFile{
LoggedInUserEmail: userCredentials.Email,
LoggedInUserDomain: config.INFISICAL_URL,
VaultBackendType: existingConfigFile.VaultBackendType,
LoggedInUsersEmail: existingConfigFile.LoggedInUsersEmail,
LoggedInUsers: existingConfigFile.LoggedInUsers,
}
configFileMarshalled, err := json.Marshal(configFile)

View File

@@ -6,6 +6,7 @@ import (
"github.com/99designs/keyring"
"github.com/Infisical/infisical-merge/packages/api"
"github.com/Infisical/infisical-merge/packages/config"
"github.com/Infisical/infisical-merge/packages/models"
"github.com/go-resty/resty/v2"
)
@@ -87,6 +88,12 @@ func GetCurrentLoggedInUserDetails() (LoggedInUserDetails, error) {
SetAuthToken(userCreds.JTWToken).
SetHeader("Accept", "application/json")
//configFile.LoggedInUserDomain
//if not empty set as infisical url
if configFile.LoggedInUserDomain != "" {
config.INFISICAL_URL = configFile.LoggedInUserDomain
}
isAuthenticated := api.CallIsAuthenticated(httpClient)
if !isAuthenticated {
return LoggedInUserDetails{

View File

@@ -9,6 +9,8 @@ import (
"os/exec"
"path"
"strings"
"github.com/Infisical/infisical-merge/packages/models"
)
type DecodedSymmetricEncryptionDetails = struct {
@@ -61,9 +63,9 @@ func IsSecretTypeValid(s string) bool {
return false
}
func Contains(iter []string, elem string) bool {
func ConfigContainsEmail(iter []models.LoggedInUser, elem string) bool {
for _, value := range iter {
if value == elem {
if value.Email == elem {
return true
}
}