func getConfiguredFormFieldNames(formName string, v *viper.Viper) []string { configuredFields := v.GetStringMapString("stormpath.web." + formName + ".form.fields") fieldOrder := v.GetStringSlice("stormpath.web." + formName + ".form.fieldOrder") for fieldName := range configuredFields { if !contains(fieldOrder, fieldName) { fieldOrder = append(fieldOrder, fieldName) } } return fieldOrder }
func getTrustPinning(config *viper.Viper) (trustpinning.TrustPinConfig, error) { var ok bool // Need to parse out Certs section from config certMap := config.GetStringMap("trust_pinning.certs") resultCertMap := make(map[string][]string) for gun, certSlice := range certMap { var castedCertSlice []interface{} if castedCertSlice, ok = certSlice.([]interface{}); !ok { return trustpinning.TrustPinConfig{}, fmt.Errorf("invalid format for trust_pinning.certs") } certsForGun := make([]string, len(castedCertSlice)) for idx, certIDInterface := range castedCertSlice { if certID, ok := certIDInterface.(string); ok { certsForGun[idx] = certID } else { return trustpinning.TrustPinConfig{}, fmt.Errorf("invalid format for trust_pinning.certs") } } resultCertMap[gun] = certsForGun } return trustpinning.TrustPinConfig{ DisableTOFU: config.GetBool("trust_pinning.disable_tofu"), CA: config.GetStringMapString("trust_pinning.ca"), Certs: resultCertMap, }, nil }