git push origin master
Merge branch 'harduino-siemonster_auths_recalc'
This commit is contained in:
@@ -1412,6 +1412,12 @@ func deleteWorkflow(resp http.ResponseWriter, request *http.Request) {
|
|||||||
log.Printf("Failed to increase total workflows: %s", err)
|
log.Printf("Failed to increase total workflows: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// recalculate authenticators stats
|
||||||
|
err = recalculateAppAuthentications()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Authentications recalculation failed: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
//memcacheName := fmt.Sprintf("%s_%s", user.Username, fileId)
|
//memcacheName := fmt.Sprintf("%s_%s", user.Username, fileId)
|
||||||
//memcache.Delete(ctx, memcacheName)
|
//memcache.Delete(ctx, memcacheName)
|
||||||
//memcacheName = fmt.Sprintf("%s_workflows", user.Username)
|
//memcacheName = fmt.Sprintf("%s_workflows", user.Username)
|
||||||
@@ -4301,10 +4307,78 @@ func loadSpecificWorkflows(resp http.ResponseWriter, request *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// recalculate authenticators stats
|
||||||
|
err = recalculateAppAuthentications()
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Authentications recalculation failed: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
resp.WriteHeader(200)
|
resp.WriteHeader(200)
|
||||||
resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
|
resp.Write([]byte(fmt.Sprintf(`{"success": true}`)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func recalculateAppAuthentications() error {
|
||||||
|
// create context
|
||||||
|
ctx := context.Background()
|
||||||
|
|
||||||
|
// form workflows list
|
||||||
|
workflows, err := getAllWorkflows(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error: Failed getting workflows: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// form authenticators list
|
||||||
|
auths, err := getAllWorkflowAppAuth(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Error: Failed getting auths: %s", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// iterate through auths
|
||||||
|
for _, auth := range auths {
|
||||||
|
// reset calculated values
|
||||||
|
auth.WorkflowCount = 0
|
||||||
|
auth.NodeCount = 0
|
||||||
|
auth.Usage = []AuthenticationUsage{}
|
||||||
|
|
||||||
|
// iterate through workflows to find which uses this auth
|
||||||
|
for _, workflow := range workflows {
|
||||||
|
hasCurrentAuth := false
|
||||||
|
usageItem := AuthenticationUsage{
|
||||||
|
WorkflowId: workflow.ID,
|
||||||
|
Nodes: []string{},
|
||||||
|
}
|
||||||
|
|
||||||
|
// iterate through actions
|
||||||
|
for _, action := range workflow.Actions {
|
||||||
|
if action.AuthenticationId == auth.Id {
|
||||||
|
// this workflow should be added to "usage" field
|
||||||
|
hasCurrentAuth = true
|
||||||
|
|
||||||
|
// add this action to list
|
||||||
|
usageItem.Nodes = append(usageItem.Nodes, action.ID)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// update current auth with found workflow
|
||||||
|
if hasCurrentAuth {
|
||||||
|
auth.WorkflowCount += 1
|
||||||
|
auth.NodeCount += int64(len(usageItem.Nodes))
|
||||||
|
auth.Usage = append(auth.Usage, usageItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// update record in database
|
||||||
|
err := setWorkflowAppAuthDatastore(ctx, auth, auth.Id)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("Failed setting up app auth %s: %s", auth.Id, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func handleAppHotloadRequest(resp http.ResponseWriter, request *http.Request) {
|
func handleAppHotloadRequest(resp http.ResponseWriter, request *http.Request) {
|
||||||
cors := handleCors(resp, request)
|
cors := handleCors(resp, request)
|
||||||
if cors {
|
if cors {
|
||||||
|
|||||||
@@ -1031,7 +1031,7 @@ const Admin = (props) => {
|
|||||||
console.log("Show apps with this category")
|
console.log("Show apps with this category")
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Find app ({data.apps.length})
|
Find app ({data.apps === null ? 0 : data.apps.length})
|
||||||
</Button>
|
</Button>
|
||||||
</ListItemText>
|
</ListItemText>
|
||||||
</ListItem>
|
</ListItem>
|
||||||
@@ -1094,7 +1094,7 @@ const Admin = (props) => {
|
|||||||
style={{minWidth: 150, maxWidth: 150}}
|
style={{minWidth: 150, maxWidth: 150}}
|
||||||
/>
|
/>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={data.usage.length}
|
primary={data.usage === null ? 0 : data.usage.length}
|
||||||
style={{minWidth: 150, maxWidth: 150, overflow: "hidden"}}
|
style={{minWidth: 150, maxWidth: 150, overflow: "hidden"}}
|
||||||
/>
|
/>
|
||||||
<ListItemText
|
<ListItemText
|
||||||
|
|||||||
Reference in New Issue
Block a user