Fixed authentication caching

This commit is contained in:
frikky
2021-05-28 13:07:38 +02:00
parent d920158cd6
commit fd4a87bfe6
8 changed files with 54 additions and 18 deletions
+15 -5
View File
@@ -1362,7 +1362,6 @@ class AppBase:
return str(baseresult)+str(appendresult), False
print("[INFO] After fourth parser return as JSON")
data, is_loop = recurse_json(basejson, parsersplit[1:])
parseditem = data
print("DATA: %s" % data)
@@ -1405,12 +1404,23 @@ class AppBase:
continue
# Handles for loops etc.
value, is_loop = get_json_value(fullexecution, to_be_replaced)
# FIXME: Should it dump to string here? Doesn't that defeat the purpose?
# Trying without string dumping.
value, is_loop = get_json_value(fullexecution, to_be_replaced)
print("\n\nType of value: %s. Value: %s" % (type(value), value))
if isinstance(value, str):
parameter["value"] = parameter["value"].replace(to_be_replaced, value)
elif isinstance(value, dict):
parameter["value"] = parameter["value"].replace(to_be_replaced, json.dumps(value))
elif isinstance(value, dict) or isinstance(value, list):
# Changed from JSON dump to str() 28.05.2021
# This makes it so the parameters gets lists and dicts straight up
#parameter["value"] = parameter["value"].replace(to_be_replaced, json.dumps(value))
try:
parameter["value"] = parameter["value"].replace(to_be_replaced, str(value))
except:
parameter["value"] = parameter["value"].replace(to_be_replaced, json.dumps(value))
print("Failed parsing value as string?")
else:
print("Unknown type %s" % type(value))
try:
@@ -1418,7 +1428,7 @@ class AppBase:
except json.decoder.JSONDecodeError as e:
parameter["value"] = parameter["value"].replace(to_be_replaced, value)
print("VALUE: %s" % value)
print("VALUE: %s" % parameter["value"])
if parameter["variant"] == "WORKFLOW_VARIABLE":
+1 -1
View File
@@ -1,6 +1,6 @@
#!/bin/bash
NAME=shuffle-app_sdk
VERSION=0.8.90
VERSION=0.8.95
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
docker build . -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION
+2 -2
View File
@@ -5552,9 +5552,9 @@ func makeWorkflowPublic(resp http.ResponseWriter, request *http.Request) {
// Check workflow.Sharing == private / public / org too
if user.Id != workflow.Owner || len(user.Id) == 0 {
if workflow.OrgId == user.ActiveOrg.Id && user.Role == "admin" {
log.Printf("[INFO] User %s is accessing workflow %s as admin", user.Username, workflow.ID)
log.Printf("[AUDIT] User %s is accessing workflow %s as admin (public)", user.Username, workflow.ID)
} else {
log.Printf("[WARNING] Wrong user (%s) for workflow %s (get workflow)", user.Username, workflow.ID)
log.Printf("[WARNING] Wrong user (%s) for workflow %s (public)", user.Username, workflow.ID)
resp.WriteHeader(401)
resp.Write([]byte(`{"success": false}`))
return
+1
View File
@@ -101,6 +101,7 @@ services:
- 9200:9200
networks:
- shuffle
restart: unless-stopped
# OLD DATABASE:
#database:
# #build: ./backend/database
+29 -7
View File
@@ -112,16 +112,28 @@ const ParsedAction = (props) => {
return response.json()
})
.then((responseJson) => {
if (setApp && responseJson.actions !== undefined && responseJson.actions !== null) {
console.log("RESPONSE: ", responseJson)
const parsedapp = responseJson.app !== undefined && responseJson.app !== null ? JSON.parse(atob(responseJson.app)) : {}
console.log("PARSED: ", parsedapp)
//data = parsedapp.body === undefined ? parsedapp : parsedapp.body
if (setApp && parsedapp.actions !== undefined && parsedapp.actions !== null) {
console.log("Inside first if")
if (selectedApp.versions !== undefined && selectedApp.versions !== null) {
responseJson.versions = selectedApp.versions
parsedapp.versions = selectedApp.versions
}
if (selectedApp.loop_versions !== undefined && selectedApp.loop_versions !== null) {
responseJson.loop_versions = selectedApp.loop_versions
parsedapp.loop_versions = selectedApp.loop_versions
}
var foundAction = responseJson.actions.find(action => action.name.toLowerCase() === selectedAction.name.toLowerCase())
// Find authentication, and if it works?
// If authentication has less OR more fields, it has to change
//console.log(selected
console.log("Inside first if2")
var foundAction = parsedapp.actions.find(action => action.name.toLowerCase() === selectedAction.name.toLowerCase())
console.log("FOUNDACTION: ", foundAction)
if (foundAction !== null && foundAction !== undefined) {
var foundparams = []
@@ -134,20 +146,23 @@ const ParsedAction = (props) => {
} else {
foundAction.parameters[paramkey] = foundParam
}
//foundparams.push(param.name)
}
} else {
alert.error("Couldn't find action "+selectedAction.name)
}
selectedAction.errors = []
selectedAction.is_valid = true
// Updating params for the new action
selectedAction.parameters = foundAction.parameters
selectedAction.app_id = appId
selectedAction.app_version = responseJson.app_version
selectedAction.app_version = parsedapp.app_version
setSelectedAction(selectedAction)
setSelectedApp(responseJson)
setSelectedApp(parsedapp)
}
})
.catch(error => {
@@ -665,6 +680,9 @@ const ParsedAction = (props) => {
disabled={disabled}
style={{backgroundColor: theme.palette.inputColor, borderRadius: theme.palette.borderRadius,}}
InputProps={{
classes: {
notchedOutline: classes.notchedOutline,
},
style:{
color: "white",
minHeight: 50,
@@ -1273,6 +1291,7 @@ const ParsedAction = (props) => {
defaultValue={selectedAction.app_version}
onChange={(event) => {
const newversion = selectedApp.versions.find(tmpApp => tmpApp.version == event.target.value)
console.log("NEWVERSION: ", newversion)
if (newversion !== undefined && newversion !== null) {
getApp(newversion.id, true)
}
@@ -1303,6 +1322,9 @@ const ParsedAction = (props) => {
<TextField
style={theme.palette.textFieldStyle}
InputProps={{
classes: {
notchedOutline: classes.notchedOutline,
},
style: theme.palette.innerTextfieldStyle,
}}
fullWidth
+4 -1
View File
@@ -151,7 +151,10 @@ const Admin = (props) => {
if (responseJson["success"] === false) {
alert.error("Failed deleting auth")
} else {
getAppAuthentication()
// Need to wait because query in ES is too fast
setTimeout(() => {
getAppAuthentication()
}, 1000);
alert.success("Successfully deleted authentication!")
}
}),
+1 -1
View File
@@ -1585,7 +1585,7 @@ const AngularWorkflow = (props) => {
const onNodeSelect = (event, newAppAuth) => {
const data = event.target.data()
if (data.isButton) {
console.log("BUTTON CLICKED: ", data)
//console.log("BUTTON CLICKED: ", data)
if (data.buttonType === "delete") {
console.log("DELETE!")
const parentNode = cy.getElementById(data.attachedTo)
+1 -1
View File
@@ -89,7 +89,7 @@ export const GetIconInfo = (action) => {
{"key": "execute", "values": ["execute", "run", "play", "raise",]},
{"key": "extract", "values": ["extract", "unpack", "decompress"]},
{"key": "inflate", "values": ["inflate", "pack", "compress",]},
{"key": "edit", "values": ["update", "create", "edit", "put", "patch", "change", "parse", "replace", "filter", "conver", "map"]},
{"key": "edit", "values": ["update", "create", "edit", "put", "patch", "change", "parse", "replace", "filter", "conver", "map", "format", "escape"]},
{"key": "compare", "values": ["compare", "convert", "to", "filter", "translate", ]},
{"key": "list", "values": ["list", "head", "options"]},
]