diff --git a/models/perm/access/access.go b/models/perm/access/access.go index 6433c4675c..068a122d01 100644 --- a/models/perm/access/access.go +++ b/models/perm/access/access.go @@ -105,8 +105,10 @@ func refreshAccesses(ctx context.Context, repo *repo_model.Repository, accessMap } newAccesses := make([]Access, 0, len(accessMap)) + keysToDelete := []int64{} for userID, ua := range accessMap { if ua.Mode < minMode && !ua.User.IsRestricted { + keysToDelete = append(keysToDelete, userID) continue } @@ -116,6 +118,9 @@ func refreshAccesses(ctx context.Context, repo *repo_model.Repository, accessMap Mode: ua.Mode, }) } + for _, uid := range keysToDelete { + delete(accessMap, uid) + } // Delete old accesses and insert new ones for repository. if _, err = db.DeleteByBean(ctx, &Access{RepoID: repo.ID}); err != nil { diff --git a/routers/api/v1/repo/actions_run.go b/routers/api/v1/repo/actions_run.go index 3e5824d1ee..35ba948c4b 100644 --- a/routers/api/v1/repo/actions_run.go +++ b/routers/api/v1/repo/actions_run.go @@ -726,9 +726,24 @@ func GetWorkflowRunLogsStream(ctx *context.APIContext) { return } + jobID := ctx.FormInt64("job_id") jobIndex := int64(0) - if ctx.FormInt("job") > 0 { - jobIndex = int64(ctx.FormInt("job")) + if jobID > 0 { + jobs, err := getRunJobsByRunID(ctx, runID) + if err != nil { + ctx.APIErrorInternal(err) + return + } + for i, j := range jobs { + if j.ID == jobID { + jobIndex = int64(i) + break + } + } + if jobIndex == 0 && jobID > 0 { + ctx.APIError(404, "Job not found") + return + } } // Parse log cursors from request body diff --git a/tools/code-batch-process.go b/tools/code-batch-process.go index 2c7ccdf8a6..5030d8bbc3 100644 --- a/tools/code-batch-process.go +++ b/tools/code-batch-process.go @@ -16,7 +16,7 @@ import ( "strconv" "strings" - "code.gitea.io/gitea/build/codeformat" + "code.gitea.io/gitea/tools/codeformat" ) // Windows has a limitation for command line arguments, the size can not exceed 32KB.