summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorPhilip Couling <couling@gmail.com>2017-01-20 06:58:46 +0000
committerKim "BKC" Carlbäcker <kim.carlbacker@gmail.com>2017-01-20 07:58:46 +0100
commit1610b9f547982af08e771e979718ae9e84b573b6 (patch)
treea2881060065f2b0d3056ab7fd5a8ac2e9f372126 /routers
parent74bbec3bf9f5e306248bf80808f93e116c232306 (diff)
downloadgitea-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.go73
-rw-r--r--routers/repo/issue.go57
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