summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/platform/model/config.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2016-11-12 22:00:53 +0100
committerWim <wim@42.be>2016-11-12 22:00:53 +0100
commit1d5cd1d7c479c382c9cddaf02f1e59bf55971f12 (patch)
treeabaf22fc41326750e376f0831537bbbbe769d5b2 /vendor/github.com/mattermost/platform/model/config.go
parent08ebee6b4faf677da159db1cffea292050492fd5 (diff)
downloadmatterbridge-msglm-1d5cd1d7c479c382c9cddaf02f1e59bf55971f12.tar.gz
matterbridge-msglm-1d5cd1d7c479c382c9cddaf02f1e59bf55971f12.tar.bz2
matterbridge-msglm-1d5cd1d7c479c382c9cddaf02f1e59bf55971f12.zip
Sync with mattermost 3.5.0
Diffstat (limited to 'vendor/github.com/mattermost/platform/model/config.go')
-rw-r--r--vendor/github.com/mattermost/platform/model/config.go248
1 files changed, 206 insertions, 42 deletions
diff --git a/vendor/github.com/mattermost/platform/model/config.go b/vendor/github.com/mattermost/platform/model/config.go
index 3ad1c4c6..f2ff788d 100644
--- a/vendor/github.com/mattermost/platform/model/config.go
+++ b/vendor/github.com/mattermost/platform/model/config.go
@@ -57,6 +57,14 @@ const (
type ServiceSettings struct {
SiteURL *string
ListenAddress string
+ ConnectionSecurity *string
+ TLSCertFile *string
+ TLSKeyFile *string
+ UseLetsEncrypt *bool
+ LetsEncryptCertificateCacheFile *string
+ Forward80To443 *bool
+ ReadTimeout *int
+ WriteTimeout *int
MaximumLoginAttempts int
SegmentDeveloperKey string
GoogleDeveloperKey string
@@ -130,26 +138,24 @@ type PasswordSettings struct {
}
type FileSettings struct {
- MaxFileSize *int64
- DriverName string
- Directory string
- EnablePublicLink bool
- PublicLinkSalt *string
- ThumbnailWidth int
- ThumbnailHeight int
- PreviewWidth int
- PreviewHeight int
- ProfileWidth int
- ProfileHeight int
- InitialFont string
- AmazonS3AccessKeyId string
- AmazonS3SecretAccessKey string
- AmazonS3Bucket string
- AmazonS3Region string
- AmazonS3Endpoint string
- AmazonS3BucketEndpoint string
- AmazonS3LocationConstraint *bool
- AmazonS3LowercaseBucket *bool
+ MaxFileSize *int64
+ DriverName string
+ Directory string
+ EnablePublicLink bool
+ PublicLinkSalt *string
+ ThumbnailWidth int
+ ThumbnailHeight int
+ PreviewWidth int
+ PreviewHeight int
+ ProfileWidth int
+ ProfileHeight int
+ InitialFont string
+ AmazonS3AccessKeyId string
+ AmazonS3SecretAccessKey string
+ AmazonS3Bucket string
+ AmazonS3Region string
+ AmazonS3Endpoint string
+ AmazonS3SSL *bool
}
type EmailSettings struct {
@@ -177,11 +183,12 @@ type EmailSettings struct {
}
type RateLimitSettings struct {
- EnableRateLimiter bool
- PerSec int
- MemoryStoreSize int
- VaryByRemoteAddr bool
- VaryByHeader string
+ Enable *bool
+ PerSec int
+ MaxBurst *int
+ MemoryStoreSize int
+ VaryByRemoteAddr bool
+ VaryByHeader string
}
type PrivacySettings struct {
@@ -205,7 +212,6 @@ type TeamSettings struct {
EnableUserCreation bool
EnableOpenServer *bool
RestrictCreationToDomains string
- RestrictTeamNames *bool
EnableCustomBrand *bool
CustomBrandText *string
CustomDescriptionText *string
@@ -214,6 +220,7 @@ type TeamSettings struct {
RestrictPublicChannelManagement *string
RestrictPrivateChannelManagement *string
UserStatusAwayTimeout *int64
+ MaxChannelsPerTeam *int64
}
type LdapSettings struct {
@@ -292,6 +299,17 @@ type NativeAppSettings struct {
IosAppDownloadLink *string
}
+type WebrtcSettings struct {
+ Enable *bool
+ GatewayWebsocketUrl *string
+ GatewayAdminUrl *string
+ GatewayAdminSecret *string
+ StunURI *string
+ TurnURI *string
+ TurnUsername *string
+ TurnSharedKey *string
+}
+
type Config struct {
ServiceSettings ServiceSettings
TeamSettings TeamSettings
@@ -312,6 +330,7 @@ type Config struct {
SamlSettings SamlSettings
NativeAppSettings NativeAppSettings
ClusterSettings ClusterSettings
+ WebrtcSettings WebrtcSettings
}
func (o *Config) ToJson() string {
@@ -353,26 +372,27 @@ func (o *Config) SetDefaults() {
o.SqlSettings.AtRestEncryptKey = NewRandomString(32)
}
+ if o.FileSettings.AmazonS3Endpoint == "" {
+ // Defaults to "s3.amazonaws.com"
+ o.FileSettings.AmazonS3Endpoint = "s3.amazonaws.com"
+ }
+ if o.FileSettings.AmazonS3Region == "" {
+ // Defaults to "us-east-1" region.
+ o.FileSettings.AmazonS3Region = "us-east-1"
+ }
+ if o.FileSettings.AmazonS3SSL == nil {
+ o.FileSettings.AmazonS3SSL = new(bool)
+ *o.FileSettings.AmazonS3SSL = true // Secure by default.
+ }
if o.FileSettings.MaxFileSize == nil {
o.FileSettings.MaxFileSize = new(int64)
*o.FileSettings.MaxFileSize = 52428800 // 50 MB
}
-
if len(*o.FileSettings.PublicLinkSalt) == 0 {
o.FileSettings.PublicLinkSalt = new(string)
*o.FileSettings.PublicLinkSalt = NewRandomString(32)
}
- if o.FileSettings.AmazonS3LocationConstraint == nil {
- o.FileSettings.AmazonS3LocationConstraint = new(bool)
- *o.FileSettings.AmazonS3LocationConstraint = false
- }
-
- if o.FileSettings.AmazonS3LowercaseBucket == nil {
- o.FileSettings.AmazonS3LowercaseBucket = new(bool)
- *o.FileSettings.AmazonS3LowercaseBucket = false
- }
-
if len(o.EmailSettings.InviteSalt) == 0 {
o.EmailSettings.InviteSalt = NewRandomString(32)
}
@@ -431,11 +451,6 @@ func (o *Config) SetDefaults() {
*o.PasswordSettings.Symbol = false
}
- if o.TeamSettings.RestrictTeamNames == nil {
- o.TeamSettings.RestrictTeamNames = new(bool)
- *o.TeamSettings.RestrictTeamNames = true
- }
-
if o.TeamSettings.EnableCustomBrand == nil {
o.TeamSettings.EnableCustomBrand = new(bool)
*o.TeamSettings.EnableCustomBrand = false
@@ -481,6 +496,11 @@ func (o *Config) SetDefaults() {
*o.TeamSettings.UserStatusAwayTimeout = 300
}
+ if o.TeamSettings.MaxChannelsPerTeam == nil {
+ o.TeamSettings.MaxChannelsPerTeam = new(int64)
+ *o.TeamSettings.MaxChannelsPerTeam = 2000
+ }
+
if o.EmailSettings.EnableSignInWithEmail == nil {
o.EmailSettings.EnableSignInWithEmail = new(bool)
@@ -881,6 +901,58 @@ func (o *Config) SetDefaults() {
o.NativeAppSettings.IosAppDownloadLink = new(string)
*o.NativeAppSettings.IosAppDownloadLink = "https://about.mattermost.com/mattermost-ios-app/"
}
+
+ if o.RateLimitSettings.Enable == nil {
+ o.RateLimitSettings.Enable = new(bool)
+ *o.RateLimitSettings.Enable = false
+ }
+
+ if o.RateLimitSettings.MaxBurst == nil {
+ o.RateLimitSettings.MaxBurst = new(int)
+ *o.RateLimitSettings.MaxBurst = 100
+ }
+
+ if o.ServiceSettings.ConnectionSecurity == nil {
+ o.ServiceSettings.ConnectionSecurity = new(string)
+ *o.ServiceSettings.ConnectionSecurity = ""
+ }
+
+ if o.ServiceSettings.TLSKeyFile == nil {
+ o.ServiceSettings.TLSKeyFile = new(string)
+ *o.ServiceSettings.TLSKeyFile = ""
+ }
+
+ if o.ServiceSettings.TLSCertFile == nil {
+ o.ServiceSettings.TLSCertFile = new(string)
+ *o.ServiceSettings.TLSCertFile = ""
+ }
+
+ if o.ServiceSettings.UseLetsEncrypt == nil {
+ o.ServiceSettings.UseLetsEncrypt = new(bool)
+ *o.ServiceSettings.UseLetsEncrypt = false
+ }
+
+ if o.ServiceSettings.LetsEncryptCertificateCacheFile == nil {
+ o.ServiceSettings.LetsEncryptCertificateCacheFile = new(string)
+ *o.ServiceSettings.LetsEncryptCertificateCacheFile = "./config/letsencrypt.cache"
+ }
+
+ if o.ServiceSettings.ReadTimeout == nil {
+ o.ServiceSettings.ReadTimeout = new(int)
+ *o.ServiceSettings.ReadTimeout = 300
+ }
+
+ if o.ServiceSettings.WriteTimeout == nil {
+ o.ServiceSettings.WriteTimeout = new(int)
+ *o.ServiceSettings.WriteTimeout = 300
+ }
+
+ if o.ServiceSettings.Forward80To443 == nil {
+ o.ServiceSettings.Forward80To443 = new(bool)
+ *o.ServiceSettings.Forward80To443 = false
+ }
+
+ o.defaultWebrtcSettings()
}
func (o *Config) IsValid() *AppError {
@@ -911,6 +983,10 @@ func (o *Config) IsValid() *AppError {
return NewLocAppError("Config.IsValid", "model.config.is_valid.max_users.app_error", nil, "")
}
+ if *o.TeamSettings.MaxChannelsPerTeam <= 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.max_channels.app_error", nil, "")
+ }
+
if !(*o.TeamSettings.RestrictDirectMessage == DIRECT_MESSAGE_ANY || *o.TeamSettings.RestrictDirectMessage == DIRECT_MESSAGE_TEAM) {
return NewLocAppError("Config.IsValid", "model.config.is_valid.restrict_direct_message.app_error", nil, "")
}
@@ -1083,6 +1159,26 @@ func (o *Config) IsValid() *AppError {
return NewLocAppError("Config.IsValid", "model.config.is_valid.sitename_length.app_error", map[string]interface{}{"MaxLength": SITENAME_MAX_LENGTH}, "")
}
+ if *o.RateLimitSettings.MaxBurst <= 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.max_burst.app_error", nil, "")
+ }
+
+ if err := o.isValidWebrtcSettings(); err != nil {
+ return err
+ }
+
+ if !(*o.ServiceSettings.ConnectionSecurity == CONN_SECURITY_NONE || *o.ServiceSettings.ConnectionSecurity == CONN_SECURITY_TLS) {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webserver_security.app_error", nil, "")
+ }
+
+ if *o.ServiceSettings.ReadTimeout <= 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.read_timeout.app_error", nil, "")
+ }
+
+ if *o.ServiceSettings.WriteTimeout <= 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.write_timeout.app_error", nil, "")
+ }
+
return nil
}
@@ -1121,3 +1217,71 @@ func (o *Config) Sanitize() {
o.SqlSettings.DataSourceReplicas[i] = FAKE_SETTING
}
}
+
+func (o *Config) defaultWebrtcSettings() {
+ if o.WebrtcSettings.Enable == nil {
+ o.WebrtcSettings.Enable = new(bool)
+ *o.WebrtcSettings.Enable = false
+ }
+
+ if o.WebrtcSettings.GatewayWebsocketUrl == nil {
+ o.WebrtcSettings.GatewayWebsocketUrl = new(string)
+ *o.WebrtcSettings.GatewayWebsocketUrl = ""
+ }
+
+ if o.WebrtcSettings.GatewayAdminUrl == nil {
+ o.WebrtcSettings.GatewayAdminUrl = new(string)
+ *o.WebrtcSettings.GatewayAdminUrl = ""
+ }
+
+ if o.WebrtcSettings.GatewayAdminSecret == nil {
+ o.WebrtcSettings.GatewayAdminSecret = new(string)
+ *o.WebrtcSettings.GatewayAdminSecret = ""
+ }
+
+ if o.WebrtcSettings.StunURI == nil {
+ o.WebrtcSettings.StunURI = new(string)
+ *o.WebrtcSettings.StunURI = ""
+ }
+
+ if o.WebrtcSettings.TurnURI == nil {
+ o.WebrtcSettings.TurnURI = new(string)
+ *o.WebrtcSettings.TurnURI = ""
+ }
+
+ if o.WebrtcSettings.TurnUsername == nil {
+ o.WebrtcSettings.TurnUsername = new(string)
+ *o.WebrtcSettings.TurnUsername = ""
+ }
+
+ if o.WebrtcSettings.TurnSharedKey == nil {
+ o.WebrtcSettings.TurnSharedKey = new(string)
+ *o.WebrtcSettings.TurnSharedKey = ""
+ }
+}
+
+func (o *Config) isValidWebrtcSettings() *AppError {
+ if *o.WebrtcSettings.Enable {
+ if len(*o.WebrtcSettings.GatewayWebsocketUrl) == 0 || !IsValidWebsocketUrl(*o.WebrtcSettings.GatewayWebsocketUrl) {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_gateway_ws_url.app_error", nil, "")
+ } else if len(*o.WebrtcSettings.GatewayAdminUrl) == 0 || !IsValidHttpUrl(*o.WebrtcSettings.GatewayAdminUrl) {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_gateway_admin_url.app_error", nil, "")
+ } else if len(*o.WebrtcSettings.GatewayAdminSecret) == 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_gateway_admin_secret.app_error", nil, "")
+ } else if len(*o.WebrtcSettings.StunURI) != 0 && !IsValidTurnOrStunServer(*o.WebrtcSettings.StunURI) {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_stun_uri.app_error", nil, "")
+ } else if len(*o.WebrtcSettings.TurnURI) != 0 {
+ if !IsValidTurnOrStunServer(*o.WebrtcSettings.TurnURI) {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_turn_uri.app_error", nil, "")
+ }
+ if len(*o.WebrtcSettings.TurnUsername) == 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_turn_username.app_error", nil, "")
+ } else if len(*o.WebrtcSettings.TurnSharedKey) == 0 {
+ return NewLocAppError("Config.IsValid", "model.config.is_valid.webrtc_turn_shared_key.app_error", nil, "")
+ }
+
+ }
+ }
+
+ return nil
+}