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