diff --git a/conf/app.ini b/conf/app.ini index 20ff34944..96e320375 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -181,6 +181,8 @@ SERVICE = server DISABLE_GRAVATAR = false [attachment] +; Whether attachments are enabled. Defaults to `true` +ENABLE = ; Path for attachments. Defaults to files/attachments PATH = ; One or more allowed types, e.g. image/jpeg|image/png diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 349ef1159..569d1bd1c 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -76,6 +76,7 @@ var ( AttachmentAllowedTypes string AttachmentMaxSize int64 AttachmentMaxFiles int + AttachmentEnabled bool // Cache settings. Cache cache.Cache @@ -176,6 +177,7 @@ func NewConfigContext() { AttachmentAllowedTypes = Cfg.MustValue("attachment", "ALLOWED_TYPES", "*/*") AttachmentMaxSize = Cfg.MustInt64("attachment", "MAX_SIZE", 32) AttachmentMaxFiles = Cfg.MustInt("attachment", "MAX_FILES", 10) + AttachmentEnabled = Cfg.MustBool("attachment", "ENABLE", true) if err = os.MkdirAll(AttachmentPath, os.ModePerm); err != nil { log.Fatal("Could not create directory %s: %s", AttachmentPath, err) diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 81261e6cd..c033e0f31 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -160,6 +160,7 @@ func CreateIssue(ctx *middleware.Context, params martini.Params) { ctx.Data["Title"] = "Create issue" ctx.Data["IsRepoToolbarIssues"] = true ctx.Data["IsRepoToolbarIssuesList"] = false + ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled var err error // Get all milestones. @@ -190,6 +191,7 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C ctx.Data["Title"] = "Create issue" ctx.Data["IsRepoToolbarIssues"] = true ctx.Data["IsRepoToolbarIssuesList"] = false + ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled var err error // Get all milestones. @@ -239,7 +241,9 @@ func CreateIssuePost(ctx *middleware.Context, params martini.Params, form auth.C return } - uploadFiles(ctx, issue.Id, 0) + if setting.AttachmentEnabled { + uploadFiles(ctx, issue.Id, 0) + } // Update mentions. ms := base.MentionPattern.FindAllString(issue.Content, -1) @@ -313,6 +317,8 @@ func checkLabels(labels, allLabels []*models.Label) { } func ViewIssue(ctx *middleware.Context, params martini.Params) { + ctx.Data["AttachmentsEnabled"] = setting.AttachmentEnabled + idx, _ := base.StrTo(params["index"]).Int64() if idx == 0 { ctx.Handle(404, "issue.ViewIssue", nil) @@ -628,6 +634,10 @@ func UpdateAssignee(ctx *middleware.Context) { } func uploadFiles(ctx *middleware.Context, issueId, commentId int64) { + if !setting.AttachmentEnabled { + return + } + allowedTypes := strings.Split(setting.AttachmentAllowedTypes, "|") attachments := ctx.Req.MultipartForm.File["attachments"] diff --git a/templates/repo/issue/create.tmpl b/templates/repo/issue/create.tmpl index 0d72123b8..770584170 100644 --- a/templates/repo/issue/create.tmpl +++ b/templates/repo/issue/create.tmpl @@ -101,13 +101,17 @@
loading...
+ {{if .AttachmentsEnabled}}
+ {{end}}
+ {{if .AttachmentsEnabled}} + {{end}}
diff --git a/templates/repo/issue/view.tmpl b/templates/repo/issue/view.tmpl index dd200e801..570698975 100644 --- a/templates/repo/issue/view.tmpl +++ b/templates/repo/issue/view.tmpl @@ -137,13 +137,17 @@
Loading...
+ {{if .AttachmentsEnabled}}
+ {{end}}
+ {{if .AttachmentsEnabled}} + {{end}} {{if .IsIssueOwner}}{{if .Issue.IsClosed}} {{else}} {{end}}{{end}}