Updates to app grabbing from backend

This commit is contained in:
frikky
2021-02-12 10:08:26 +01:00
parent a6763a99a0
commit 83c58849cf
2 changed files with 51 additions and 13 deletions
+2 -2
View File
@@ -2877,8 +2877,8 @@ func fixUserOrg(ctx context.Context, user *User) *User {
// Used for testing only. Shouldn't impact production. // Used for testing only. Shouldn't impact production.
func handleCors(resp http.ResponseWriter, request *http.Request) bool { func handleCors(resp http.ResponseWriter, request *http.Request) bool {
allowedOrigins := "http://localhost:3000" //allowedOrigins := "http://localhost:3000"
//allowedOrigins := "http://localhost:3002" allowedOrigins := "http://localhost:3002"
resp.Header().Set("Vary", "Origin") resp.Header().Set("Vary", "Origin")
resp.Header().Set("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Authorization") resp.Header().Set("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Authorization")
+49 -11
View File
@@ -4740,13 +4740,7 @@ func getWorkflowAppConfig(resp http.ResponseWriter, request *http.Request) {
return return
} }
user, userErr := handleApiAuthentication(resp, request) ctx := context.Background()
if userErr != nil {
log.Printf("Api authentication failed in edit workflow: %s", userErr)
resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`))
return
}
location := strings.Split(request.URL.String(), "/") location := strings.Split(request.URL.String(), "/")
var fileId string var fileId string
@@ -4760,23 +4754,67 @@ func getWorkflowAppConfig(resp http.ResponseWriter, request *http.Request) {
fileId = location[4] fileId = location[4]
} }
ctx := context.Background()
app, err := getApp(ctx, fileId) app, err := getApp(ctx, fileId)
if err != nil { if err != nil {
log.Printf("Error getting app (app config): %s", fileId) log.Printf("[WARNING] Error getting app %s (app config): %s", fileId, err)
resp.WriteHeader(401)
resp.Write([]byte(`{"success": false, "reason": "App doesn't exist"}`))
return
}
//if IsValid bool `json:"is_valid" yaml:"is_valid" required:true datastore:"is_valid"`
// Sharing bool `json:"sharing" yaml:"sharing" required:false datastore:"sharing"`
log.Printf("Sharing: %s", app.Sharing)
log.Printf("Generated: %s", app.Generated)
log.Printf("Downloaded: %s", app.Downloaded)
// FIXME - Handle sharing and such PROPERLY
if app.Sharing && app.Generated {
log.Printf("CAN SHARE APP!")
parsedApi, err := getOpenApiDatastore(ctx, fileId)
if err != nil {
log.Printf("[WARNING] OpenApi doesn't exist for: %s - err: %s", fileId, err)
resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`))
return
}
if len(parsedApi.ID) > 0 {
parsedApi.Success = true
} else {
parsedApi.Success = false
}
//log.Printf("PARSEDAPI: %#v", parsedApi)
data, err := json.Marshal(parsedApi)
if err != nil {
log.Printf("[WARNING] Error parsing api json: %s", err)
resp.WriteHeader(422)
resp.Write([]byte(fmt.Sprintf(`{"success": false, "reason": "Failed marshalling new parsed swagger: %s"}`, err)))
return
}
resp.WriteHeader(200)
resp.Write(data)
return
}
user, userErr := handleApiAuthentication(resp, request)
if userErr != nil {
log.Printf("[WARNING] Api authentication failed in get app: %s", userErr)
resp.WriteHeader(401) resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`)) resp.Write([]byte(`{"success": false}`))
return return
} }
if user.Id != app.Owner && user.Role != "admin" { if user.Id != app.Owner && user.Role != "admin" {
log.Printf("Wrong user (%s) for app %s", user.Username, app.Name) log.Printf("[WARNING] Wrong user (%s) for app %s", user.Username, app.Name)
resp.WriteHeader(401) resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`)) resp.Write([]byte(`{"success": false}`))
return return
} }
log.Printf("Getting app %s", fileId) log.Printf("Getting app %s (OpenAPI)", fileId)
parsedApi, err := getOpenApiDatastore(ctx, fileId) parsedApi, err := getOpenApiDatastore(ctx, fileId)
if err != nil { if err != nil {
log.Printf("OpenApi doesn't exist for: %s - err: %s", fileId, err) log.Printf("OpenApi doesn't exist for: %s - err: %s", fileId, err)