Add config options for task attachments (#125)

Add config options for task attachments

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#125
This commit is contained in:
konrad 2020-01-26 19:10:31 +00:00
parent b2b1546a8f
commit fc65052ba0
5 changed files with 41 additions and 31 deletions

View File

@ -24,6 +24,8 @@ service:
enablelinksharing: true enablelinksharing: true
# Whether to let new users registering themselves or not # Whether to let new users registering themselves or not
enableregistration: true enableregistration: true
# Whether to enable task attachments or not
enabletaskattachments: true
database: database:
# Database type to use. Supported types are mysql and sqlite. # Database type to use. Supported types are mysql and sqlite.

View File

@ -67,6 +67,8 @@ service:
enablelinksharing: true enablelinksharing: true
# Whether to let new users registering themselves or not # Whether to let new users registering themselves or not
enableregistration: true enableregistration: true
# Whether to enable task attachments or not
enabletaskattachments: true
database: database:
# Database type to use. Supported types are mysql and sqlite. # Database type to use. Supported types are mysql and sqlite.

View File

@ -43,6 +43,7 @@ const (
ServiceMotd Key = `service.motd` ServiceMotd Key = `service.motd`
ServiceEnableLinkSharing Key = `service.enablelinksharing` ServiceEnableLinkSharing Key = `service.enablelinksharing`
ServiceEnableRegistration Key = `service.enableregistration` ServiceEnableRegistration Key = `service.enableregistration`
ServiceEnableTaskAttachments Key = `service.enabletaskattachments`
DatabaseType Key = `database.type` DatabaseType Key = `database.type`
DatabaseHost Key = `database.host` DatabaseHost Key = `database.host`
@ -166,6 +167,7 @@ func InitDefaultConfig() {
ServiceMotd.setDefault("") ServiceMotd.setDefault("")
ServiceEnableLinkSharing.setDefault(true) ServiceEnableLinkSharing.setDefault(true)
ServiceEnableRegistration.setDefault(true) ServiceEnableRegistration.setDefault(true)
ServiceEnableTaskAttachments.setDefault(true)
// Database // Database
DatabaseType.setDefault("sqlite") DatabaseType.setDefault("sqlite")

View File

@ -31,6 +31,7 @@ type vikunjaInfos struct {
MaxFileSize string `json:"max_file_size"` MaxFileSize string `json:"max_file_size"`
RegistrationEnabled bool `json:"registration_enabled"` RegistrationEnabled bool `json:"registration_enabled"`
AvailableMigrators []string `json:"available_migrators"` AvailableMigrators []string `json:"available_migrators"`
TaskAttachmentsEnabled bool `json:"task_attachments_enabled"`
} }
// Info is the handler to get infos about this vikunja instance // Info is the handler to get infos about this vikunja instance
@ -48,6 +49,7 @@ func Info(c echo.Context) error {
LinkSharingEnabled: config.ServiceEnableLinkSharing.GetBool(), LinkSharingEnabled: config.ServiceEnableLinkSharing.GetBool(),
MaxFileSize: config.FilesMaxSize.GetString(), MaxFileSize: config.FilesMaxSize.GetString(),
RegistrationEnabled: config.ServiceEnableRegistration.GetBool(), RegistrationEnabled: config.ServiceEnableRegistration.GetBool(),
TaskAttachmentsEnabled: config.ServiceEnableTaskAttachments.GetBool(),
} }
if config.MigrationWunderlistEnable.GetBool() { if config.MigrationWunderlistEnable.GetBool() {
infos.AvailableMigrators = append(infos.AvailableMigrators, "wunderlist") infos.AvailableMigrators = append(infos.AvailableMigrators, "wunderlist")

View File

@ -288,6 +288,7 @@ func registerAPIRoutes(a *echo.Group) {
a.PUT("/tasks/:task/relations", taskRelationHandler.CreateWeb) a.PUT("/tasks/:task/relations", taskRelationHandler.CreateWeb)
a.DELETE("/tasks/:task/relations", taskRelationHandler.DeleteWeb) a.DELETE("/tasks/:task/relations", taskRelationHandler.DeleteWeb)
if config.ServiceEnableTaskAttachments.GetBool() {
taskAttachmentHandler := &handler.WebHandler{ taskAttachmentHandler := &handler.WebHandler{
EmptyStruct: func() handler.CObject { EmptyStruct: func() handler.CObject {
return &models.TaskAttachment{} return &models.TaskAttachment{}
@ -297,6 +298,7 @@ func registerAPIRoutes(a *echo.Group) {
a.DELETE("/tasks/:task/attachments/:attachment", taskAttachmentHandler.DeleteWeb) a.DELETE("/tasks/:task/attachments/:attachment", taskAttachmentHandler.DeleteWeb)
a.PUT("/tasks/:task/attachments", apiv1.UploadTaskAttachment) a.PUT("/tasks/:task/attachments", apiv1.UploadTaskAttachment)
a.GET("/tasks/:task/attachments/:attachment", apiv1.GetTaskAttachment) a.GET("/tasks/:task/attachments/:attachment", apiv1.GetTaskAttachment)
}
labelHandler := &handler.WebHandler{ labelHandler := &handler.WebHandler{
EmptyStruct: func() handler.CObject { EmptyStruct: func() handler.CObject {