diff options
author | Philip Couling <couling@gmail.com> | 2017-01-20 06:58:46 +0000 |
---|---|---|
committer | Kim "BKC" Carlbäcker <kim.carlbacker@gmail.com> | 2017-01-20 07:58:46 +0100 |
commit | 1610b9f547982af08e771e979718ae9e84b573b6 (patch) | |
tree | a2881060065f2b0d3056ab7fd5a8ac2e9f372126 /routers | |
parent | 74bbec3bf9f5e306248bf80808f93e116c232306 (diff) | |
download | gitea-1610b9f547982af08e771e979718ae9e84b573b6.tar.gz gitea-1610b9f547982af08e771e979718ae9e84b573b6.zip |
Spun attachments into seperate go file (#701)
Moved attachments into seperate go file
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/attachment.go | 73 | ||||
-rw-r--r-- | routers/repo/issue.go | 57 |
2 files changed, 73 insertions, 57 deletions
diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go new file mode 100644 index 0000000000..2ba389f07a --- /dev/null +++ b/routers/repo/attachment.go @@ -0,0 +1,73 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package repo + +import ( + "fmt" + "net/http" + "strings" + + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/modules/context" + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" +) + +func renderAttachmentSettings(ctx *context.Context) { + ctx.Data["RequireDropzone"] = true + ctx.Data["IsAttachmentEnabled"] = setting.AttachmentEnabled + ctx.Data["AttachmentAllowedTypes"] = setting.AttachmentAllowedTypes + ctx.Data["AttachmentMaxSize"] = setting.AttachmentMaxSize + ctx.Data["AttachmentMaxFiles"] = setting.AttachmentMaxFiles +} + +// UploadAttachment response for uploading issue's attachment +func UploadAttachment(ctx *context.Context) { + if !setting.AttachmentEnabled { + ctx.Error(404, "attachment is not enabled") + return + } + + file, header, err := ctx.Req.FormFile("file") + if err != nil { + ctx.Error(500, fmt.Sprintf("FormFile: %v", err)) + return + } + defer file.Close() + + buf := make([]byte, 1024) + n, _ := file.Read(buf) + if n > 0 { + buf = buf[:n] + } + fileType := http.DetectContentType(buf) + + allowedTypes := strings.Split(setting.AttachmentAllowedTypes, ",") + allowed := false + for _, t := range allowedTypes { + t := strings.Trim(t, " ") + if t == "*/*" || t == fileType { + allowed = true + break + } + } + + if !allowed { + ctx.Error(400, ErrFileTypeForbidden.Error()) + return + } + + attach, err := models.NewAttachment(header.Filename, buf, file) + if err != nil { + ctx.Error(500, fmt.Sprintf("NewAttachment: %v", err)) + return + } + + log.Trace("New attachment uploaded: %s", attach.UUID) + ctx.JSON(200, map[string]string{ + "uuid": attach.UUID, + }) +} + diff --git a/routers/repo/issue.go b/routers/repo/issue.go index f77b44f633..50995e70fe 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -9,7 +9,6 @@ import ( "fmt" "io" "io/ioutil" - "net/http" "net/url" "strings" "time" @@ -268,14 +267,6 @@ func Issues(ctx *context.Context) { ctx.HTML(200, tplIssues) } -func renderAttachmentSettings(ctx *context.Context) { - ctx.Data["RequireDropzone"] = true - ctx.Data["IsAttachmentEnabled"] = setting.AttachmentEnabled - ctx.Data["AttachmentAllowedTypes"] = setting.AttachmentAllowedTypes - ctx.Data["AttachmentMaxSize"] = setting.AttachmentMaxSize - ctx.Data["AttachmentMaxFiles"] = setting.AttachmentMaxFiles -} - // RetrieveRepoMilestonesAndAssignees find all the milestones and assignees of a repository func RetrieveRepoMilestonesAndAssignees(ctx *context.Context, repo *models.Repository) { var err error @@ -477,54 +468,6 @@ func NewIssuePost(ctx *context.Context, form auth.CreateIssueForm) { ctx.Redirect(ctx.Repo.RepoLink + "/issues/" + com.ToStr(issue.Index)) } -// UploadAttachment response for uploading issue's attachment -func UploadAttachment(ctx *context.Context) { - if !setting.AttachmentEnabled { - ctx.Error(404, "attachment is not enabled") - return - } - - file, header, err := ctx.Req.FormFile("file") - if err != nil { - ctx.Error(500, fmt.Sprintf("FormFile: %v", err)) - return - } - defer file.Close() - - buf := make([]byte, 1024) - n, _ := file.Read(buf) - if n > 0 { - buf = buf[:n] - } - fileType := http.DetectContentType(buf) - - allowedTypes := strings.Split(setting.AttachmentAllowedTypes, ",") - allowed := false - for _, t := range allowedTypes { - t := strings.Trim(t, " ") - if t == "*/*" || t == fileType { - allowed = true - break - } - } - - if !allowed { - ctx.Error(400, ErrFileTypeForbidden.Error()) - return - } - - attach, err := models.NewAttachment(header.Filename, buf, file) - if err != nil { - ctx.Error(500, fmt.Sprintf("NewAttachment: %v", err)) - return - } - - log.Trace("New attachment uploaded: %s", attach.UUID) - ctx.JSON(200, map[string]string{ - "uuid": attach.UUID, - }) -} - // ViewIssue render issue view page func ViewIssue(ctx *context.Context) { ctx.Data["RequireHighlightJS"] = true |