mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-05 00:04:04 +00:00
Update vendor for next release (#1343)
This commit is contained in:
533
vendor/github.com/mattermost/mattermost-server/v5/model/config.go
generated
vendored
533
vendor/github.com/mattermost/mattermost-server/v5/model/config.go
generated
vendored
@ -12,12 +12,14 @@ import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/mattermost/ldap"
|
||||
"github.com/mattermost/mattermost-server/v5/mlog"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -107,7 +109,7 @@ const (
|
||||
TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT = ""
|
||||
TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT = 300
|
||||
|
||||
SQL_SETTINGS_DEFAULT_DATA_SOURCE = "mmuser:mostest@tcp(localhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
|
||||
SQL_SETTINGS_DEFAULT_DATA_SOURCE = "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable&connect_timeout=10"
|
||||
|
||||
FILE_SETTINGS_DEFAULT_DIRECTORY = "./data/"
|
||||
|
||||
@ -220,6 +222,8 @@ const (
|
||||
OFFICE365_SETTINGS_DEFAULT_TOKEN_ENDPOINT = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
|
||||
OFFICE365_SETTINGS_DEFAULT_USER_API_ENDPOINT = "https://graph.microsoft.com/v1.0/me"
|
||||
|
||||
CLOUD_SETTINGS_DEFAULT_CWS_URL = "https://customers.mattermost.com"
|
||||
|
||||
LOCAL_MODE_SOCKET_PATH = "/var/tmp/mattermost_local.socket"
|
||||
)
|
||||
|
||||
@ -250,26 +254,26 @@ var ServerTLSSupportedCiphers = map[string]uint16{
|
||||
|
||||
type ServiceSettings struct {
|
||||
SiteURL *string `access:"environment,authentication,write_restrictable"`
|
||||
WebsocketURL *string `access:"write_restrictable"`
|
||||
LicenseFileLocation *string `access:"write_restrictable"`
|
||||
ListenAddress *string `access:"environment,write_restrictable"`
|
||||
ConnectionSecurity *string `access:"environment,write_restrictable"`
|
||||
TLSCertFile *string `access:"environment,write_restrictable"`
|
||||
TLSKeyFile *string `access:"environment,write_restrictable"`
|
||||
TLSMinVer *string `access:"write_restrictable"`
|
||||
TLSStrictTransport *bool `access:"write_restrictable"`
|
||||
TLSStrictTransportMaxAge *int64 `access:"write_restrictable"`
|
||||
TLSOverwriteCiphers []string `access:"write_restrictable"`
|
||||
UseLetsEncrypt *bool `access:"environment,write_restrictable"`
|
||||
LetsEncryptCertificateCacheFile *string `access:"environment,write_restrictable"`
|
||||
Forward80To443 *bool `access:"environment,write_restrictable"`
|
||||
TrustedProxyIPHeader []string `access:"write_restrictable"`
|
||||
ReadTimeout *int `access:"environment,write_restrictable"`
|
||||
WriteTimeout *int `access:"environment,write_restrictable"`
|
||||
IdleTimeout *int `access:"write_restrictable"`
|
||||
MaximumLoginAttempts *int `access:"authentication,write_restrictable"`
|
||||
GoroutineHealthThreshold *int `access:"write_restrictable"`
|
||||
GoogleDeveloperKey *string `access:"site,write_restrictable"`
|
||||
WebsocketURL *string `access:"write_restrictable,cloud_restrictable"`
|
||||
LicenseFileLocation *string `access:"write_restrictable,cloud_restrictable"`
|
||||
ListenAddress *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ConnectionSecurity *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
TLSCertFile *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
TLSKeyFile *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
TLSMinVer *string `access:"write_restrictable,cloud_restrictable"`
|
||||
TLSStrictTransport *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
TLSStrictTransportMaxAge *int64 `access:"write_restrictable,cloud_restrictable"`
|
||||
TLSOverwriteCiphers []string `access:"write_restrictable,cloud_restrictable"`
|
||||
UseLetsEncrypt *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
LetsEncryptCertificateCacheFile *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Forward80To443 *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
TrustedProxyIPHeader []string `access:"write_restrictable,cloud_restrictable"`
|
||||
ReadTimeout *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
WriteTimeout *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
IdleTimeout *int `access:"write_restrictable,cloud_restrictable"`
|
||||
MaximumLoginAttempts *int `access:"authentication,write_restrictable,cloud_restrictable"`
|
||||
GoroutineHealthThreshold *int `access:"write_restrictable,cloud_restrictable"`
|
||||
GoogleDeveloperKey *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
EnableOAuthServiceProvider *bool `access:"integrations"`
|
||||
EnableIncomingWebhooks *bool `access:"integrations"`
|
||||
EnableOutgoingWebhooks *bool `access:"integrations"`
|
||||
@ -278,29 +282,29 @@ type ServiceSettings struct {
|
||||
EnablePostUsernameOverride *bool `access:"integrations"`
|
||||
EnablePostIconOverride *bool `access:"integrations"`
|
||||
EnableLinkPreviews *bool `access:"site"`
|
||||
EnableTesting *bool `access:"environment,write_restrictable"`
|
||||
EnableDeveloper *bool `access:"environment,write_restrictable"`
|
||||
EnableOpenTracing *bool `access:"write_restrictable"`
|
||||
EnableSecurityFixAlert *bool `access:"environment,write_restrictable"`
|
||||
EnableInsecureOutgoingConnections *bool `access:"environment,write_restrictable"`
|
||||
AllowedUntrustedInternalConnections *string `access:"environment,write_restrictable"`
|
||||
EnableTesting *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableDeveloper *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableOpenTracing *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableSecurityFixAlert *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableInsecureOutgoingConnections *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AllowedUntrustedInternalConnections *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableMultifactorAuthentication *bool `access:"authentication"`
|
||||
EnforceMultifactorAuthentication *bool `access:"authentication"`
|
||||
EnableUserAccessTokens *bool `access:"integrations"`
|
||||
AllowCorsFrom *string `access:"integrations,write_restrictable"`
|
||||
CorsExposedHeaders *string `access:"integrations,write_restrictable"`
|
||||
CorsAllowCredentials *bool `access:"integrations,write_restrictable"`
|
||||
CorsDebug *bool `access:"integrations,write_restrictable"`
|
||||
AllowCookiesForSubdomains *bool `access:"write_restrictable"`
|
||||
ExtendSessionLengthWithActivity *bool `access:"environment,write_restrictable"`
|
||||
SessionLengthWebInDays *int `access:"environment,write_restrictable"`
|
||||
SessionLengthMobileInDays *int `access:"environment,write_restrictable"`
|
||||
SessionLengthSSOInDays *int `access:"environment,write_restrictable"`
|
||||
SessionCacheInMinutes *int `access:"environment,write_restrictable"`
|
||||
SessionIdleTimeoutInMinutes *int `access:"environment,write_restrictable"`
|
||||
WebsocketSecurePort *int `access:"write_restrictable"`
|
||||
WebsocketPort *int `access:"write_restrictable"`
|
||||
WebserverMode *string `access:"environment,write_restrictable"`
|
||||
AllowCorsFrom *string `access:"integrations,write_restrictable,cloud_restrictable"`
|
||||
CorsExposedHeaders *string `access:"integrations,write_restrictable,cloud_restrictable"`
|
||||
CorsAllowCredentials *bool `access:"integrations,write_restrictable,cloud_restrictable"`
|
||||
CorsDebug *bool `access:"integrations,write_restrictable,cloud_restrictable"`
|
||||
AllowCookiesForSubdomains *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExtendSessionLengthWithActivity *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthWebInDays *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthMobileInDays *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SessionLengthSSOInDays *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SessionCacheInMinutes *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SessionIdleTimeoutInMinutes *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
WebsocketSecurePort *int `access:"write_restrictable,cloud_restrictable"`
|
||||
WebsocketPort *int `access:"write_restrictable,cloud_restrictable"`
|
||||
WebserverMode *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableCustomEmoji *bool `access:"site"`
|
||||
EnableEmojiPicker *bool `access:"site"`
|
||||
EnableGifPicker *bool `access:"integrations"`
|
||||
@ -310,14 +314,14 @@ type ServiceSettings struct {
|
||||
DEPRECATED_DO_NOT_USE_RestrictPostDelete *string `json:"RestrictPostDelete" mapstructure:"RestrictPostDelete"` // This field is deprecated and must not be used.
|
||||
DEPRECATED_DO_NOT_USE_AllowEditPost *string `json:"AllowEditPost" mapstructure:"AllowEditPost"` // This field is deprecated and must not be used.
|
||||
PostEditTimeLimit *int `access:"user_management_permissions"`
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64 `access:"experimental,write_restrictable"`
|
||||
EnablePostSearch *bool `access:"write_restrictable"`
|
||||
MinimumHashtagLength *int `access:"environment,write_restrictable"`
|
||||
EnableUserTypingMessages *bool `access:"experimental,write_restrictable"`
|
||||
EnableChannelViewedMessages *bool `access:"experimental,write_restrictable"`
|
||||
EnableUserStatuses *bool `access:"write_restrictable"`
|
||||
ExperimentalEnableAuthenticationTransfer *bool `access:"experimental,write_restrictable"`
|
||||
ClusterLogTimeoutMilliseconds *int `access:"write_restrictable"`
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64 `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
EnablePostSearch *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
MinimumHashtagLength *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableUserTypingMessages *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
EnableChannelViewedMessages *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
EnableUserStatuses *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExperimentalEnableAuthenticationTransfer *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
ClusterLogTimeoutMilliseconds *int `access:"write_restrictable,cloud_restrictable"`
|
||||
CloseUnusedDirectMessages *bool `access:"experimental"`
|
||||
EnablePreviewFeatures *bool `access:"experimental"`
|
||||
EnableTutorial *bool `access:"experimental"`
|
||||
@ -332,10 +336,10 @@ type ServiceSettings struct {
|
||||
EnableAPITeamDeletion *bool
|
||||
EnableAPIUserDeletion *bool
|
||||
ExperimentalEnableHardenedMode *bool `access:"experimental"`
|
||||
DisableLegacyMFA *bool `access:"write_restrictable"`
|
||||
ExperimentalStrictCSRFEnforcement *bool `access:"experimental,write_restrictable"`
|
||||
DisableLegacyMFA *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ExperimentalStrictCSRFEnforcement *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
EnableEmailInvitations *bool `access:"authentication"`
|
||||
DisableBotsWhenOwnerIsDeactivated *bool `access:"integrations,write_restrictable"`
|
||||
DisableBotsWhenOwnerIsDeactivated *bool `access:"integrations,write_restrictable,cloud_restrictable"`
|
||||
EnableBotAccountCreation *bool `access:"integrations"`
|
||||
EnableSVGs *bool `access:"site"`
|
||||
EnableLatex *bool `access:"site"`
|
||||
@ -343,6 +347,9 @@ type ServiceSettings struct {
|
||||
EnableLocalMode *bool
|
||||
LocalModeSocketLocation *string
|
||||
EnableAWSMetering *bool
|
||||
SplitKey *string `access:"environment,write_restrictable"`
|
||||
FeatureFlagSyncIntervalSeconds *int `access:"environment,write_restrictable"`
|
||||
DebugSplit *bool `access:"environment,write_restrictable"`
|
||||
ThreadAutoFollow *bool `access:"experimental"`
|
||||
ManagedResourcePaths *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
@ -763,6 +770,18 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) {
|
||||
s.EnableAWSMetering = NewBool(false)
|
||||
}
|
||||
|
||||
if s.SplitKey == nil {
|
||||
s.SplitKey = NewString("")
|
||||
}
|
||||
|
||||
if s.FeatureFlagSyncIntervalSeconds == nil {
|
||||
s.FeatureFlagSyncIntervalSeconds = NewInt(30)
|
||||
}
|
||||
|
||||
if s.DebugSplit == nil {
|
||||
s.DebugSplit = NewBool(false)
|
||||
}
|
||||
|
||||
if s.ThreadAutoFollow == nil {
|
||||
s.ThreadAutoFollow = NewBool(true)
|
||||
}
|
||||
@ -774,20 +793,20 @@ func (s *ServiceSettings) SetDefaults(isUpdate bool) {
|
||||
|
||||
type ClusterSettings struct {
|
||||
Enable *bool `access:"environment,write_restrictable"`
|
||||
ClusterName *string `access:"environment,write_restrictable"`
|
||||
OverrideHostname *string `access:"environment,write_restrictable"`
|
||||
NetworkInterface *string `access:"environment,write_restrictable"`
|
||||
BindAddress *string `access:"environment,write_restrictable"`
|
||||
AdvertiseAddress *string `access:"environment,write_restrictable"`
|
||||
UseIpAddress *bool `access:"environment,write_restrictable"`
|
||||
UseExperimentalGossip *bool `access:"environment,write_restrictable"`
|
||||
EnableExperimentalGossipEncryption *bool `access:"environment,write_restrictable"`
|
||||
ReadOnlyConfig *bool `access:"environment,write_restrictable"`
|
||||
GossipPort *int `access:"environment,write_restrictable"`
|
||||
StreamingPort *int `access:"environment,write_restrictable"`
|
||||
MaxIdleConns *int `access:"environment,write_restrictable"`
|
||||
MaxIdleConnsPerHost *int `access:"environment,write_restrictable"`
|
||||
IdleConnTimeoutMilliseconds *int `access:"environment,write_restrictable"`
|
||||
ClusterName *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
OverrideHostname *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
NetworkInterface *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
BindAddress *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AdvertiseAddress *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
UseIpAddress *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
UseExperimentalGossip *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableExperimentalGossipEncryption *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ReadOnlyConfig *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
GossipPort *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
StreamingPort *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MaxIdleConns *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MaxIdleConnsPerHost *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
IdleConnTimeoutMilliseconds *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *ClusterSettings) SetDefaults() {
|
||||
@ -853,9 +872,9 @@ func (s *ClusterSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type MetricsSettings struct {
|
||||
Enable *bool `access:"environment,write_restrictable"`
|
||||
BlockProfileRate *int `access:"environment,write_restrictable"`
|
||||
ListenAddress *string `access:"environment,write_restrictable"`
|
||||
Enable *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
BlockProfileRate *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ListenAddress *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *MetricsSettings) SetDefaults() {
|
||||
@ -873,14 +892,15 @@ func (s *MetricsSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type ExperimentalSettings struct {
|
||||
ClientSideCertEnable *bool `access:"experimental"`
|
||||
ClientSideCertCheck *string `access:"experimental"`
|
||||
EnableClickToReply *bool `access:"experimental,write_restrictable"`
|
||||
LinkMetadataTimeoutMilliseconds *int64 `access:"experimental,write_restrictable"`
|
||||
ClientSideCertEnable *bool `access:"experimental,cloud_restrictable"`
|
||||
ClientSideCertCheck *string `access:"experimental,cloud_restrictable"`
|
||||
EnableClickToReply *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
LinkMetadataTimeoutMilliseconds *int64 `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
RestrictSystemAdmin *bool `access:"experimental,write_restrictable"`
|
||||
UseNewSAMLLibrary *bool `access:"experimental"`
|
||||
UseNewSAMLLibrary *bool `access:"experimental,cloud_restrictable"`
|
||||
CloudUserLimit *int64 `access:"experimental,write_restrictable"`
|
||||
CloudBilling *bool `access:"experimental,write_restrictable"`
|
||||
EnableSharedChannels *bool `access:"experimental"`
|
||||
}
|
||||
|
||||
func (s *ExperimentalSettings) SetDefaults() {
|
||||
@ -916,10 +936,14 @@ func (s *ExperimentalSettings) SetDefaults() {
|
||||
if s.UseNewSAMLLibrary == nil {
|
||||
s.UseNewSAMLLibrary = NewBool(false)
|
||||
}
|
||||
|
||||
if s.EnableSharedChannels == nil {
|
||||
s.EnableSharedChannels = NewBool(false)
|
||||
}
|
||||
}
|
||||
|
||||
type AnalyticsSettings struct {
|
||||
MaxUsersForStatistics *int `access:"write_restrictable"`
|
||||
MaxUsersForStatistics *int `access:"write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *AnalyticsSettings) SetDefaults() {
|
||||
@ -1026,22 +1050,22 @@ func (s *Office365Settings) SSOSettings() *SSOSettings {
|
||||
}
|
||||
|
||||
type SqlSettings struct {
|
||||
DriverName *string `access:"environment,write_restrictable"`
|
||||
DataSource *string `access:"environment,write_restrictable"`
|
||||
DataSourceReplicas []string `access:"environment,write_restrictable"`
|
||||
DataSourceSearchReplicas []string `access:"environment,write_restrictable"`
|
||||
MaxIdleConns *int `access:"environment,write_restrictable"`
|
||||
ConnMaxLifetimeMilliseconds *int `access:"environment,write_restrictable"`
|
||||
MaxOpenConns *int `access:"environment,write_restrictable"`
|
||||
Trace *bool `access:"environment,write_restrictable"`
|
||||
AtRestEncryptKey *string `access:"environment,write_restrictable"`
|
||||
QueryTimeout *int `access:"environment,write_restrictable"`
|
||||
DisableDatabaseSearch *bool `access:"environment,write_restrictable"`
|
||||
DriverName *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
DataSource *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
DataSourceReplicas []string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
DataSourceSearchReplicas []string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MaxIdleConns *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ConnMaxLifetimeMilliseconds *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MaxOpenConns *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Trace *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AtRestEncryptKey *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
QueryTimeout *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
DisableDatabaseSearch *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *SqlSettings) SetDefaults(isUpdate bool) {
|
||||
if s.DriverName == nil {
|
||||
s.DriverName = NewString(DATABASE_DRIVER_MYSQL)
|
||||
s.DriverName = NewString(DATABASE_DRIVER_POSTGRES)
|
||||
}
|
||||
|
||||
if s.DataSource == nil {
|
||||
@ -1092,17 +1116,17 @@ func (s *SqlSettings) SetDefaults(isUpdate bool) {
|
||||
}
|
||||
|
||||
type LogSettings struct {
|
||||
EnableConsole *bool `access:"environment,write_restrictable"`
|
||||
ConsoleLevel *string `access:"environment,write_restrictable"`
|
||||
ConsoleJson *bool `access:"environment,write_restrictable"`
|
||||
EnableFile *bool `access:"environment,write_restrictable"`
|
||||
FileLevel *string `access:"environment,write_restrictable"`
|
||||
FileJson *bool `access:"environment,write_restrictable"`
|
||||
FileLocation *string `access:"environment,write_restrictable"`
|
||||
EnableWebhookDebugging *bool `access:"environment,write_restrictable"`
|
||||
EnableDiagnostics *bool `access:"environment,write_restrictable"`
|
||||
EnableSentry *bool `access:"environment,write_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"environment,write_restrictable"`
|
||||
EnableConsole *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ConsoleLevel *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ConsoleJson *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableFile *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
FileLevel *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
FileJson *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
FileLocation *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableWebhookDebugging *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableDiagnostics *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableSentry *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *LogSettings) SetDefaults() {
|
||||
@ -1152,14 +1176,14 @@ func (s *LogSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type ExperimentalAuditSettings struct {
|
||||
FileEnabled *bool `access:"experimental,write_restrictable"`
|
||||
FileName *string `access:"experimental,write_restrictable"`
|
||||
FileMaxSizeMB *int `access:"experimental,write_restrictable"`
|
||||
FileMaxAgeDays *int `access:"experimental,write_restrictable"`
|
||||
FileMaxBackups *int `access:"experimental,write_restrictable"`
|
||||
FileCompress *bool `access:"experimental,write_restrictable"`
|
||||
FileMaxQueueSize *int `access:"experimental,write_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"experimental,write_restrictable"`
|
||||
FileEnabled *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileName *string `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileMaxSizeMB *int `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileMaxAgeDays *int `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileMaxBackups *int `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileCompress *bool `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
FileMaxQueueSize *int `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"experimental,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *ExperimentalAuditSettings) SetDefaults() {
|
||||
@ -1197,14 +1221,14 @@ func (s *ExperimentalAuditSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type NotificationLogSettings struct {
|
||||
EnableConsole *bool `access:"write_restrictable"`
|
||||
ConsoleLevel *string `access:"write_restrictable"`
|
||||
ConsoleJson *bool `access:"write_restrictable"`
|
||||
EnableFile *bool `access:"write_restrictable"`
|
||||
FileLevel *string `access:"write_restrictable"`
|
||||
FileJson *bool `access:"write_restrictable"`
|
||||
FileLocation *string `access:"write_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"write_restrictable"`
|
||||
EnableConsole *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
ConsoleLevel *string `access:"write_restrictable,cloud_restrictable"`
|
||||
ConsoleJson *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
EnableFile *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
FileLevel *string `access:"write_restrictable,cloud_restrictable"`
|
||||
FileJson *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
FileLocation *string `access:"write_restrictable,cloud_restrictable"`
|
||||
AdvancedLoggingConfig *string `access:"write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *NotificationLogSettings) SetDefaults() {
|
||||
@ -1272,25 +1296,25 @@ func (s *PasswordSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type FileSettings struct {
|
||||
EnableFileAttachments *bool `access:"site"`
|
||||
EnableMobileUpload *bool `access:"site"`
|
||||
EnableMobileDownload *bool `access:"site"`
|
||||
MaxFileSize *int64 `access:"environment"`
|
||||
DriverName *string `access:"environment,write_restrictable"`
|
||||
Directory *string `access:"environment,write_restrictable"`
|
||||
EnablePublicLink *bool `access:"site"`
|
||||
PublicLinkSalt *string `access:"site"`
|
||||
InitialFont *string `access:"environment"`
|
||||
AmazonS3AccessKeyId *string `access:"environment,write_restrictable"`
|
||||
AmazonS3SecretAccessKey *string `access:"environment,write_restrictable"`
|
||||
AmazonS3Bucket *string `access:"environment,write_restrictable"`
|
||||
AmazonS3PathPrefix *string `access:"environment,write_restrictable"`
|
||||
AmazonS3Region *string `access:"environment,write_restrictable"`
|
||||
AmazonS3Endpoint *string `access:"environment,write_restrictable"`
|
||||
AmazonS3SSL *bool `access:"environment,write_restrictable"`
|
||||
AmazonS3SignV2 *bool `access:"environment,write_restrictable"`
|
||||
AmazonS3SSE *bool `access:"environment,write_restrictable"`
|
||||
AmazonS3Trace *bool `access:"environment,write_restrictable"`
|
||||
EnableFileAttachments *bool `access:"site,cloud_restrictable"`
|
||||
EnableMobileUpload *bool `access:"site,cloud_restrictable"`
|
||||
EnableMobileDownload *bool `access:"site,cloud_restrictable"`
|
||||
MaxFileSize *int64 `access:"environment,cloud_restrictable"`
|
||||
DriverName *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Directory *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnablePublicLink *bool `access:"site,cloud_restrictable"`
|
||||
PublicLinkSalt *string `access:"site,cloud_restrictable"`
|
||||
InitialFont *string `access:"environment,cloud_restrictable"`
|
||||
AmazonS3AccessKeyId *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3SecretAccessKey *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3Bucket *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3PathPrefix *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3Region *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3Endpoint *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3SSL *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3SignV2 *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3SSE *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AmazonS3Trace *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *FileSettings) SetDefaults(isUpdate bool) {
|
||||
@ -1388,16 +1412,16 @@ type EmailSettings struct {
|
||||
UseChannelInEmailNotifications *bool `access:"experimental"`
|
||||
RequireEmailVerification *bool `access:"authentication"`
|
||||
FeedbackName *string `access:"site"`
|
||||
FeedbackEmail *string `access:"site"`
|
||||
ReplyToAddress *string `access:"site"`
|
||||
FeedbackEmail *string `access:"site,cloud_restrictable"`
|
||||
ReplyToAddress *string `access:"site,cloud_restrictable"`
|
||||
FeedbackOrganization *string `access:"site"`
|
||||
EnableSMTPAuth *bool `access:"environment,write_restrictable"`
|
||||
SMTPUsername *string `access:"environment,write_restrictable"`
|
||||
SMTPPassword *string `access:"environment,write_restrictable"`
|
||||
SMTPServer *string `access:"environment,write_restrictable"`
|
||||
SMTPPort *string `access:"environment,write_restrictable"`
|
||||
SMTPServerTimeout *int
|
||||
ConnectionSecurity *string `access:"environment,write_restrictable"`
|
||||
EnableSMTPAuth *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SMTPUsername *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SMTPPassword *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SMTPServer *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SMTPPort *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SMTPServerTimeout *int `access:"cloud_restrictable"`
|
||||
ConnectionSecurity *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SendPushNotifications *bool `access:"environment"`
|
||||
PushNotificationServer *string `access:"environment"`
|
||||
PushNotificationContents *string `access:"site"`
|
||||
@ -1406,7 +1430,7 @@ type EmailSettings struct {
|
||||
EmailBatchingBufferSize *int `access:"experimental"`
|
||||
EmailBatchingInterval *int `access:"experimental"`
|
||||
EnablePreviewModeBanner *bool `access:"site"`
|
||||
SkipServerCertificateVerification *bool `access:"environment,write_restrictable"`
|
||||
SkipServerCertificateVerification *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EmailNotificationContentsType *string `access:"site"`
|
||||
LoginButtonColor *string `access:"experimental"`
|
||||
LoginButtonBorderColor *string `access:"experimental"`
|
||||
@ -1556,13 +1580,13 @@ func (s *EmailSettings) SetDefaults(isUpdate bool) {
|
||||
}
|
||||
|
||||
type RateLimitSettings struct {
|
||||
Enable *bool `access:"environment,write_restrictable"`
|
||||
PerSec *int `access:"environment,write_restrictable"`
|
||||
MaxBurst *int `access:"environment,write_restrictable"`
|
||||
MemoryStoreSize *int `access:"environment,write_restrictable"`
|
||||
VaryByRemoteAddr *bool `access:"environment,write_restrictable"`
|
||||
VaryByUser *bool `access:"environment,write_restrictable"`
|
||||
VaryByHeader string `access:"environment,write_restrictable"`
|
||||
Enable *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
PerSec *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MaxBurst *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
MemoryStoreSize *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
VaryByRemoteAddr *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
VaryByUser *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
VaryByHeader string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *RateLimitSettings) SetDefaults() {
|
||||
@ -1607,11 +1631,11 @@ func (s *PrivacySettings) setDefaults() {
|
||||
}
|
||||
|
||||
type SupportSettings struct {
|
||||
TermsOfServiceLink *string `access:"site,write_restrictable"`
|
||||
PrivacyPolicyLink *string `access:"site,write_restrictable"`
|
||||
AboutLink *string `access:"site,write_restrictable"`
|
||||
HelpLink *string `access:"site,write_restrictable"`
|
||||
ReportAProblemLink *string `access:"site,write_restrictable"`
|
||||
TermsOfServiceLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
PrivacyPolicyLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
AboutLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
HelpLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
ReportAProblemLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
SupportEmail *string `access:"site"`
|
||||
CustomTermsOfServiceEnabled *bool `access:"compliance"`
|
||||
CustomTermsOfServiceReAcceptancePeriod *int `access:"compliance"`
|
||||
@ -1938,12 +1962,12 @@ func (s *TeamSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type ClientRequirements struct {
|
||||
AndroidLatestVersion string `access:"write_restrictable"`
|
||||
AndroidMinVersion string `access:"write_restrictable"`
|
||||
DesktopLatestVersion string `access:"write_restrictable"`
|
||||
DesktopMinVersion string `access:"write_restrictable"`
|
||||
IosLatestVersion string `access:"write_restrictable"`
|
||||
IosMinVersion string `access:"write_restrictable"`
|
||||
AndroidLatestVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
AndroidMinVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
DesktopLatestVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
DesktopMinVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
IosLatestVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
IosMinVersion string `access:"write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
type LdapSettings struct {
|
||||
@ -2189,6 +2213,7 @@ type SamlSettings struct {
|
||||
Enable *bool `access:"authentication"`
|
||||
EnableSyncWithLdap *bool `access:"authentication"`
|
||||
EnableSyncWithLdapIncludeAuth *bool `access:"authentication"`
|
||||
IgnoreGuestsLdapSync *bool `access:"authentication"`
|
||||
|
||||
Verify *bool `access:"authentication"`
|
||||
Encrypt *bool `access:"authentication"`
|
||||
@ -2243,6 +2268,10 @@ func (s *SamlSettings) SetDefaults() {
|
||||
s.EnableSyncWithLdapIncludeAuth = NewBool(false)
|
||||
}
|
||||
|
||||
if s.IgnoreGuestsLdapSync == nil {
|
||||
s.IgnoreGuestsLdapSync = NewBool(false)
|
||||
}
|
||||
|
||||
if s.EnableAdminAttribute == nil {
|
||||
s.EnableAdminAttribute = NewBool(false)
|
||||
}
|
||||
@ -2367,9 +2396,9 @@ func (s *SamlSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type NativeAppSettings struct {
|
||||
AppDownloadLink *string `access:"site,write_restrictable"`
|
||||
AndroidAppDownloadLink *string `access:"site,write_restrictable"`
|
||||
IosAppDownloadLink *string `access:"site,write_restrictable"`
|
||||
AppDownloadLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
AndroidAppDownloadLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
IosAppDownloadLink *string `access:"site,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *NativeAppSettings) SetDefaults() {
|
||||
@ -2387,27 +2416,27 @@ func (s *NativeAppSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type ElasticsearchSettings struct {
|
||||
ConnectionUrl *string `access:"environment,write_restrictable"`
|
||||
Username *string `access:"environment,write_restrictable"`
|
||||
Password *string `access:"environment,write_restrictable"`
|
||||
EnableIndexing *bool `access:"environment,write_restrictable"`
|
||||
EnableSearching *bool `access:"environment,write_restrictable"`
|
||||
EnableAutocomplete *bool `access:"environment,write_restrictable"`
|
||||
Sniff *bool `access:"environment,write_restrictable"`
|
||||
PostIndexReplicas *int `access:"environment,write_restrictable"`
|
||||
PostIndexShards *int `access:"environment,write_restrictable"`
|
||||
ChannelIndexReplicas *int `access:"environment,write_restrictable"`
|
||||
ChannelIndexShards *int `access:"environment,write_restrictable"`
|
||||
UserIndexReplicas *int `access:"environment,write_restrictable"`
|
||||
UserIndexShards *int `access:"environment,write_restrictable"`
|
||||
AggregatePostsAfterDays *int `access:"environment,write_restrictable"`
|
||||
PostsAggregatorJobStartTime *string `access:"environment,write_restrictable"`
|
||||
IndexPrefix *string `access:"environment,write_restrictable"`
|
||||
LiveIndexingBatchSize *int `access:"environment,write_restrictable"`
|
||||
BulkIndexingTimeWindowSeconds *int `access:"environment,write_restrictable"`
|
||||
RequestTimeoutSeconds *int `access:"environment,write_restrictable"`
|
||||
SkipTLSVerification *bool `access:"environment,write_restrictable"`
|
||||
Trace *string `access:"environment,write_restrictable"`
|
||||
ConnectionUrl *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Username *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Password *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableIndexing *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableSearching *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
EnableAutocomplete *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Sniff *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
PostIndexReplicas *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
PostIndexShards *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ChannelIndexReplicas *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
ChannelIndexShards *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
UserIndexReplicas *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
UserIndexShards *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
AggregatePostsAfterDays *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
PostsAggregatorJobStartTime *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
IndexPrefix *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
LiveIndexingBatchSize *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
BulkIndexingTimeWindowSeconds *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
RequestTimeoutSeconds *int `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
SkipTLSVerification *bool `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
Trace *string `access:"environment,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *ElasticsearchSettings) SetDefaults() {
|
||||
@ -2557,8 +2586,8 @@ func (s *DataRetentionSettings) SetDefaults() {
|
||||
}
|
||||
|
||||
type JobSettings struct {
|
||||
RunJobs *bool `access:"write_restrictable"`
|
||||
RunScheduler *bool `access:"write_restrictable"`
|
||||
RunJobs *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
RunScheduler *bool `access:"write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *JobSettings) SetDefaults() {
|
||||
@ -2571,25 +2600,35 @@ func (s *JobSettings) SetDefaults() {
|
||||
}
|
||||
}
|
||||
|
||||
type CloudSettings struct {
|
||||
CWSUrl *string `access:"environment,write_restrictable"`
|
||||
}
|
||||
|
||||
func (s *CloudSettings) SetDefaults() {
|
||||
if s.CWSUrl == nil {
|
||||
s.CWSUrl = NewString(CLOUD_SETTINGS_DEFAULT_CWS_URL)
|
||||
}
|
||||
}
|
||||
|
||||
type PluginState struct {
|
||||
Enable bool
|
||||
}
|
||||
|
||||
type PluginSettings struct {
|
||||
Enable *bool `access:"plugins"`
|
||||
EnableUploads *bool `access:"plugins,write_restrictable"`
|
||||
AllowInsecureDownloadUrl *bool `access:"plugins,write_restrictable"`
|
||||
EnableHealthCheck *bool `access:"plugins,write_restrictable"`
|
||||
Directory *string `access:"plugins,write_restrictable"`
|
||||
ClientDirectory *string `access:"plugins,write_restrictable"`
|
||||
Enable *bool `access:"plugins,write_restrictable"`
|
||||
EnableUploads *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
AllowInsecureDownloadUrl *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
EnableHealthCheck *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
Directory *string `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
ClientDirectory *string `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
Plugins map[string]map[string]interface{} `access:"plugins"`
|
||||
PluginStates map[string]*PluginState `access:"plugins"`
|
||||
EnableMarketplace *bool `access:"plugins"`
|
||||
EnableRemoteMarketplace *bool `access:"plugins"`
|
||||
AutomaticPrepackagedPlugins *bool `access:"plugins"`
|
||||
RequirePluginSignature *bool `access:"plugins"`
|
||||
MarketplaceUrl *string `access:"plugins"`
|
||||
SignaturePublicKeyFiles []string `access:"plugins"`
|
||||
EnableMarketplace *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
EnableRemoteMarketplace *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
AutomaticPrepackagedPlugins *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
RequirePluginSignature *bool `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
MarketplaceUrl *string `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
SignaturePublicKeyFiles []string `access:"plugins,write_restrictable,cloud_restrictable"`
|
||||
}
|
||||
|
||||
func (s *PluginSettings) SetDefaults(ls LogSettings) {
|
||||
@ -2630,6 +2669,16 @@ func (s *PluginSettings) SetDefaults(ls LogSettings) {
|
||||
s.PluginStates["com.mattermost.nps"] = &PluginState{Enable: ls.EnableDiagnostics == nil || *ls.EnableDiagnostics}
|
||||
}
|
||||
|
||||
if s.PluginStates["com.mattermost.plugin-incident-management"] == nil && BuildEnterpriseReady == "true" {
|
||||
// Enable the incident management plugin by default
|
||||
s.PluginStates["com.mattermost.plugin-incident-management"] = &PluginState{Enable: true}
|
||||
}
|
||||
|
||||
if s.PluginStates["com.mattermost.plugin-channel-export"] == nil && BuildEnterpriseReady == "true" {
|
||||
// Enable the channel export plugin by default
|
||||
s.PluginStates["com.mattermost.plugin-channel-export"] = &PluginState{Enable: true}
|
||||
}
|
||||
|
||||
if s.EnableMarketplace == nil {
|
||||
s.EnableMarketplace = NewBool(PLUGIN_SETTINGS_DEFAULT_ENABLE_MARKETPLACE)
|
||||
}
|
||||
@ -2808,7 +2857,9 @@ func (s *ImageProxySettings) SetDefaults(ss ServiceSettings) {
|
||||
|
||||
type ConfigFunc func() *Config
|
||||
|
||||
const ConfigAccessTagType = "access"
|
||||
const ConfigAccessTagWriteRestrictable = "write_restrictable"
|
||||
const ConfigAccessTagCloudRestrictable = "cloud_restrictable"
|
||||
|
||||
// Config fields support the 'access' tag with the following values corresponding to the suffix of the associated
|
||||
// PERMISSION_SYSCONSOLE_*_* permission Id: 'about', 'reporting', 'user_management_users',
|
||||
@ -2822,6 +2873,9 @@ const ConfigAccessTagWriteRestrictable = "write_restrictable"
|
||||
//
|
||||
// PERMISSION_MANAGE_SYSTEM always grants read access.
|
||||
//
|
||||
// Config values with the access tag 'cloud_restrictable' mean that are marked to be filtered when it's used in a cloud licensed
|
||||
// environment with ExperimentalSettings.RestrictedSystemAdmin set to true.
|
||||
//
|
||||
// Example:
|
||||
// type HairSettings struct {
|
||||
// // Colour is writeable with either PERMISSION_SYSCONSOLE_WRITE_REPORTING or PERMISSION_SYSCONSOLE_WRITE_USER_MANAGEMENT_GROUPS.
|
||||
@ -2874,6 +2928,8 @@ type Config struct {
|
||||
DisplaySettings DisplaySettings
|
||||
GuestAccountsSettings GuestAccountsSettings
|
||||
ImageProxySettings ImageProxySettings
|
||||
CloudSettings CloudSettings
|
||||
FeatureFlags *FeatureFlags `json:",omitempty"`
|
||||
}
|
||||
|
||||
func (o *Config) Clone() *Config {
|
||||
@ -2889,6 +2945,18 @@ func (o *Config) ToJson() string {
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func (o *Config) ToJsonFiltered(tagType, tagValue string) string {
|
||||
filteredConfigMap := structToMapFilteredByTag(*o, tagType, tagValue)
|
||||
for key, value := range filteredConfigMap {
|
||||
v, ok := value.(map[string]interface{})
|
||||
if ok && len(v) == 0 {
|
||||
delete(filteredConfigMap, key)
|
||||
}
|
||||
}
|
||||
b, _ := json.Marshal(filteredConfigMap)
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func (o *Config) GetSSOService(service string) *SSOSettings {
|
||||
switch service {
|
||||
case SERVICE_GITLAB:
|
||||
@ -2960,6 +3028,11 @@ func (o *Config) SetDefaults() {
|
||||
o.DisplaySettings.SetDefaults()
|
||||
o.GuestAccountsSettings.SetDefaults()
|
||||
o.ImageProxySettings.SetDefaults(o.ServiceSettings)
|
||||
o.CloudSettings.SetDefaults()
|
||||
if o.FeatureFlags == nil {
|
||||
o.FeatureFlags = &FeatureFlags{}
|
||||
o.FeatureFlags.SetDefaults()
|
||||
}
|
||||
}
|
||||
|
||||
func (o *Config) IsValid() *AppError {
|
||||
@ -3588,4 +3661,66 @@ func (o *Config) Sanitize() {
|
||||
if o.ServiceSettings.GfycatApiSecret != nil && len(*o.ServiceSettings.GfycatApiSecret) > 0 {
|
||||
*o.ServiceSettings.GfycatApiSecret = FAKE_SETTING
|
||||
}
|
||||
|
||||
*o.ServiceSettings.SplitKey = FAKE_SETTING
|
||||
}
|
||||
|
||||
// structToMapFilteredByTag converts a struct into a map removing those fields that has the tag passed
|
||||
// as argument
|
||||
func structToMapFilteredByTag(t interface{}, typeOfTag, filterTag string) map[string]interface{} {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
mlog.Error("Panicked in structToMapFilteredByTag. This should never happen.", mlog.Any("recover", r))
|
||||
}
|
||||
}()
|
||||
|
||||
val := reflect.ValueOf(t)
|
||||
elemField := reflect.TypeOf(t)
|
||||
|
||||
if val.Kind() != reflect.Struct {
|
||||
return nil
|
||||
}
|
||||
|
||||
out := map[string]interface{}{}
|
||||
|
||||
for i := 0; i < val.NumField(); i++ {
|
||||
field := val.Field(i)
|
||||
|
||||
structField := elemField.Field(i)
|
||||
tagPermissions := strings.Split(structField.Tag.Get(typeOfTag), ",")
|
||||
if isTagPresent(filterTag, tagPermissions) {
|
||||
continue
|
||||
}
|
||||
|
||||
var value interface{}
|
||||
|
||||
switch field.Kind() {
|
||||
case reflect.Struct:
|
||||
value = structToMapFilteredByTag(field.Interface(), typeOfTag, filterTag)
|
||||
case reflect.Ptr:
|
||||
indirectType := field.Elem()
|
||||
if indirectType.Kind() == reflect.Struct {
|
||||
value = structToMapFilteredByTag(indirectType.Interface(), typeOfTag, filterTag)
|
||||
} else if indirectType.Kind() != reflect.Invalid {
|
||||
value = indirectType.Interface()
|
||||
}
|
||||
default:
|
||||
value = field.Interface()
|
||||
}
|
||||
|
||||
out[val.Type().Field(i).Name] = value
|
||||
}
|
||||
|
||||
return out
|
||||
}
|
||||
|
||||
func isTagPresent(tag string, tags []string) bool {
|
||||
for _, val := range tags {
|
||||
tagValue := strings.TrimSpace(val)
|
||||
if tagValue != "" && tagValue == tag {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
Reference in New Issue
Block a user