package repo import ( "net/http" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/context" routeRepo "code.gitea.io/gitea/routers/repo" ) func GetSuccessChunks(ctx *context.APIContext) { if errStr := checkDatasetPermission(ctx); errStr != "" { ctx.JSON(http.StatusForbidden, ctx.Tr(errStr)) } routeRepo.GetSuccessChunks(ctx.Context) } func checkDatasetPermission(ctx *context.APIContext) string { datasetId := ctx.QueryInt64("dataset_id") dataset, err := models.GetDatasetByID(datasetId) if err != nil { log.Warn("can not find dataset", err) return "dataset.query_dataset_fail" } repo, err := models.GetRepositoryByID(dataset.RepoID) if err != nil { log.Warn("can not find repo", err) return "dataset.query_dataset_fail" } permission, err := models.GetUserRepoPermission(repo, ctx.User) if err != nil { log.Warn("can not find repo permission for user", err) return "dataset.query_dataset_fail" } if !permission.CanWrite(models.UnitTypeDatasets) { return "error.no_right" } return "" } func NewMultipart(ctx *context.APIContext) { if errStr := checkDatasetPermission(ctx); errStr != "" { ctx.JSON(http.StatusForbidden, ctx.Tr(errStr)) } routeRepo.NewMultipart(ctx.Context) } func GetMultipartUploadUrl(ctx *context.APIContext) { if errStr := checkDatasetPermission(ctx); errStr != "" { ctx.JSON(http.StatusForbidden, ctx.Tr(errStr)) } routeRepo.GetMultipartUploadUrl(ctx.Context) } func CompleteMultipart(ctx *context.APIContext) { if errStr := checkDatasetPermission(ctx); errStr != "" { ctx.JSON(http.StatusForbidden, ctx.Tr(errStr)) } routeRepo.CompleteMultipart(ctx.Context) } func GetAttachment(ctx *context.APIContext) { routeRepo.GetAttachment(ctx.Context) }