Skip to content

Commit e0a9e25

Browse files
committed
Fix more bugs when view migrating repository
1 parent f351b21 commit e0a9e25

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

routers/web/user/task.go

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ import (
88
"strconv"
99

1010
admin_model "code.gitea.io/gitea/models/admin"
11+
access_model "code.gitea.io/gitea/models/perm/access"
12+
"code.gitea.io/gitea/models/unit"
1113
"code.gitea.io/gitea/modules/json"
1214
"code.gitea.io/gitea/services/context"
1315
)
1416

1517
// TaskStatus returns task's status
1618
func TaskStatus(ctx *context.Context) {
17-
task, opts, err := admin_model.GetMigratingTaskByID(ctx, ctx.PathParamInt64("task"), ctx.Doer.ID)
19+
task, _, err := admin_model.GetMigratingTaskByID(ctx, ctx.PathParamInt64("task"), 0)
1820
if err != nil {
1921
if admin_model.IsErrTaskDoesNotExist(err) {
2022
ctx.JSON(http.StatusNotFound, map[string]any{
@@ -28,6 +30,27 @@ func TaskStatus(ctx *context.Context) {
2830
return
2931
}
3032

33+
if err := task.LoadRepo(ctx); err != nil {
34+
ctx.JSON(http.StatusInternalServerError, map[string]any{
35+
"err": err,
36+
})
37+
return
38+
}
39+
40+
perm, err := access_model.GetUserRepoPermission(ctx, task.Repo, ctx.Doer)
41+
if err != nil {
42+
ctx.JSON(http.StatusInternalServerError, map[string]any{
43+
"err": err,
44+
})
45+
return
46+
}
47+
if !perm.CanRead(unit.TypeCode) {
48+
ctx.JSON(http.StatusForbidden, map[string]any{
49+
"error": "you do not have access to this task",
50+
})
51+
return
52+
}
53+
3154
message := task.Message
3255

3356
if task.Message != "" && task.Message[0] == '{' {
@@ -43,11 +66,7 @@ func TaskStatus(ctx *context.Context) {
4366
}
4467

4568
ctx.JSON(http.StatusOK, map[string]any{
46-
"status": task.Status,
47-
"message": message,
48-
"repo-id": task.RepoID,
49-
"repo-name": opts.RepoName,
50-
"start": task.StartTime,
51-
"end": task.EndTime,
69+
"status": task.Status,
70+
"message": message,
5271
})
5372
}

routers/web/web.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ func registerRoutes(m *web.Router) {
669669
m.Get("/forgot_password", auth.ForgotPasswd)
670670
m.Post("/forgot_password", auth.ForgotPasswdPost)
671671
m.Post("/logout", auth.SignOut)
672-
m.Get("/task/{task}", reqSignIn, user.TaskStatus)
672+
m.Get("/task/{task}", user.TaskStatus)
673673
m.Get("/stopwatches", reqSignIn, user.GetStopwatches)
674674
m.Get("/search", ignExploreSignIn, user.Search)
675675
m.Group("/oauth2", func() {

web_src/js/features/repo-migrate.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ export function initRepoMigrationStatusChecker() {
77
const repoMigrating = document.querySelector('#repo_migrating');
88
if (!repoMigrating) return;
99

10-
const retryBtn = document.querySelector('#repo_migrating_retry');
11-
if (retryBtn) {
12-
retryBtn.addEventListener('click', doMigrationRetry);
13-
}
10+
document.querySelector('#repo_migrating_retry')?.addEventListener('click', doMigrationRetry);
1411

1512
const task = repoMigrating.getAttribute('data-migrating-task-id');
1613

0 commit comments

Comments
 (0)