mirror of https://github.com/go-gitea/gitea
Fix javascript error when an anonymous user visiting migration page (#32144)
This PR fixes javascript errors when an anonymous user visits the migration page. It also makes task view checking more restrictive. The router moved from `/user/task/{id}/status` to `/username/reponame/-/migrate/status` because it's a migrate status. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>pull/30914/head^2
parent
3a4a1bffbe
commit
a989404e23
@ -1,53 +0,0 @@ |
||||
// Copyright 2020 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package user |
||||
|
||||
import ( |
||||
"net/http" |
||||
"strconv" |
||||
|
||||
admin_model "code.gitea.io/gitea/models/admin" |
||||
"code.gitea.io/gitea/modules/json" |
||||
"code.gitea.io/gitea/services/context" |
||||
) |
||||
|
||||
// TaskStatus returns task's status
|
||||
func TaskStatus(ctx *context.Context) { |
||||
task, opts, err := admin_model.GetMigratingTaskByID(ctx, ctx.PathParamInt64("task"), ctx.Doer.ID) |
||||
if err != nil { |
||||
if admin_model.IsErrTaskDoesNotExist(err) { |
||||
ctx.JSON(http.StatusNotFound, map[string]any{ |
||||
"error": "task `" + strconv.FormatInt(ctx.PathParamInt64("task"), 10) + "` does not exist", |
||||
}) |
||||
return |
||||
} |
||||
ctx.JSON(http.StatusInternalServerError, map[string]any{ |
||||
"err": err, |
||||
}) |
||||
return |
||||
} |
||||
|
||||
message := task.Message |
||||
|
||||
if task.Message != "" && task.Message[0] == '{' { |
||||
// assume message is actually a translatable string
|
||||
var translatableMessage admin_model.TranslatableMessage |
||||
if err := json.Unmarshal([]byte(message), &translatableMessage); err != nil { |
||||
translatableMessage = admin_model.TranslatableMessage{ |
||||
Format: "migrate.migrating_failed.error", |
||||
Args: []any{task.Message}, |
||||
} |
||||
} |
||||
message = ctx.Locale.TrString(translatableMessage.Format, translatableMessage.Args...) |
||||
} |
||||
|
||||
ctx.JSON(http.StatusOK, map[string]any{ |
||||
"status": task.Status, |
||||
"message": message, |
||||
"repo-id": task.RepoID, |
||||
"repo-name": opts.RepoName, |
||||
"start": task.StartTime, |
||||
"end": task.EndTime, |
||||
}) |
||||
} |
Loading…
Reference in new issue