diff --git a/engine/api/group/node_group.go b/engine/api/group/node_group.go index a6c3e7bee2..c561d754f8 100644 --- a/engine/api/group/node_group.go +++ b/engine/api/group/node_group.go @@ -21,9 +21,9 @@ func LoadGroupsByNode(db gorp.SqlExecutor, nodeID int64) ([]sdk.GroupPermission, rows, err := db.Query(query, nodeID) if err != nil { if err == sql.ErrNoRows { - return nil, err + return nil, nil } - return nil, err + return nil, sdk.WithStack(err) } defer rows.Close() @@ -32,7 +32,7 @@ func LoadGroupsByNode(db gorp.SqlExecutor, nodeID int64) ([]sdk.GroupPermission, var group sdk.Group var perm int if err := rows.Scan(&group.ID, &group.Name, &perm); err != nil { - return groups, err + return groups, sdk.WithStack(err) } groups = append(groups, sdk.GroupPermission{ Group: group, diff --git a/engine/api/workflow/dao.go b/engine/api/workflow/dao.go index 150d08b907..8c2a12de95 100644 --- a/engine/api/workflow/dao.go +++ b/engine/api/workflow/dao.go @@ -155,6 +155,15 @@ func (w *Workflow) PostGet(db gorp.SqlExecutor) error { w.WorkflowData = data } + nodes := w.WorkflowData.Array() + for i := range nodes { + var err error + nodes[i].Groups, err = group.LoadGroupsByNode(db, nodes[i].ID) + if err != nil { + return sdk.WrapError(err, "cannot load node groups") + } + } + return nil } diff --git a/engine/api/workflow_group.go b/engine/api/workflow_group.go index d507debb51..b5e9fc937c 100644 --- a/engine/api/workflow_group.go +++ b/engine/api/workflow_group.go @@ -22,8 +22,9 @@ func (api *API) deleteWorkflowGroupHandler() service.Handler { key := vars["key"] name := vars["permWorkflowName"] groupName := vars["groupName"] + u := deprecatedGetUser(ctx) - proj, err := project.Load(api.mustDB(), api.Cache, key, deprecatedGetUser(ctx), project.LoadOptions.WithIntegrations) + proj, err := project.Load(api.mustDB(), api.Cache, key, u, project.LoadOptions.WithIntegrations) if err != nil { return sdk.WrapError(err, "unable to load projet") } @@ -31,7 +32,7 @@ func (api *API) deleteWorkflowGroupHandler() service.Handler { options := workflow.LoadOptions{ WithoutNode: true, } - wf, err := workflow.Load(ctx, api.mustDB(), api.Cache, proj, name, deprecatedGetUser(ctx), options) + wf, err := workflow.Load(ctx, api.mustDB(), api.Cache, proj, name, u, options) if err != nil { return sdk.WrapError(err, "deleteWorkflowGroupHandler") }