summaryrefslogtreecommitdiffstats
path: root/model/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/config.go')
-rw-r--r--model/config.go37
1 files changed, 37 insertions, 0 deletions
diff --git a/model/config.go b/model/config.go
index f73cb290b..32cb501a0 100644
--- a/model/config.go
+++ b/model/config.go
@@ -47,6 +47,9 @@ const (
RESTRICT_EMOJI_CREATION_ADMIN = "admin"
RESTRICT_EMOJI_CREATION_SYSTEM_ADMIN = "system_admin"
+ EMAIL_BATCHING_BUFFER_SIZE = 256
+ EMAIL_BATCHING_INTERVAL = 30
+
SITENAME_MAX_LENGTH = 30
)
@@ -166,6 +169,9 @@ type EmailSettings struct {
SendPushNotifications *bool
PushNotificationServer *string
PushNotificationContents *string
+ EnableEmailBatching *bool
+ EmailBatchingBufferSize *int
+ EmailBatchingInterval *int
}
type RateLimitSettings struct {
@@ -508,6 +514,21 @@ func (o *Config) SetDefaults() {
*o.EmailSettings.FeedbackOrganization = ""
}
+ if o.EmailSettings.EnableEmailBatching == nil {
+ o.EmailSettings.EnableEmailBatching = new(bool)
+ *o.EmailSettings.EnableEmailBatching = false
+ }
+
+ if o.EmailSettings.EmailBatchingBufferSize == nil {
+ o.EmailSettings.EmailBatchingBufferSize = new(int)
+ *o.EmailSettings.EmailBatchingBufferSize = EMAIL_BATCHING_BUFFER_SIZE
+ }
+
+ if o.EmailSettings.EmailBatchingInterval == nil {
+ o.EmailSettings.EmailBatchingInterval = new(int)
+ *o.EmailSettings.EmailBatchingInterval = EMAIL_BATCHING_INTERVAL
+ }
+
if !IsSafeLink(o.SupportSettings.TermsOfServiceLink) {
o.SupportSettings.TermsOfServiceLink = nil
}
@@ -871,6 +892,14 @@ func (o *Config) IsValid() *AppError {
return NewLocAppError("Config.IsValid", "model.config.is_valid.listen_address.app_error", nil, "")
}
+ if *o.ClusterSettings.Enable && *o.EmailSettings.EnableEmailBatching {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.cluster_email_batching.app_error", nil, "")
+ }
+
+ if len(*o.ServiceSettings.SiteURL) == 0 && *o.EmailSettings.EnableEmailBatching {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.site_url_email_batching.app_error", nil, "")
+ }
+
if o.TeamSettings.MaxUsersPerTeam <= 0 {
return NewLocAppError("Config.IsValid", "model.config.is_valid.max_users.app_error", nil, "")
}
@@ -947,6 +976,14 @@ func (o *Config) IsValid() *AppError {
return NewLocAppError("Config.IsValid", "model.config.is_valid.email_reset_salt.app_error", nil, "")
}
+ if *o.EmailSettings.EmailBatchingBufferSize <= 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.email_batching_buffer_size.app_error", nil, "")
+ }
+
+ if *o.EmailSettings.EmailBatchingInterval < 30 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.email_batching_interval.app_error", nil, "")
+ }
+
if o.RateLimitSettings.MemoryStoreSize <= 0 {
return NewLocAppError("Config.IsValid", "model.config.is_valid.rate_mem.app_error", nil, "")
}