mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Add EnableDefaultChannelLeaveJoinMessages config setting (#7961)
This commit is contained in:
committed by
Christopher Speller
parent
dd9ad10d70
commit
0a9200c35d
@@ -63,13 +63,15 @@ func (a *App) JoinDefaultChannels(teamId string, user *model.User, channelRole s
|
||||
l4g.Warn("Failed to update ChannelMemberHistory table %v", result.Err)
|
||||
}
|
||||
|
||||
if requestor == nil {
|
||||
if err := a.postJoinTeamMessage(user, townSquare); err != nil {
|
||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
||||
}
|
||||
} else {
|
||||
if err := a.PostAddToTeamMessage(requestor, user, townSquare, ""); err != nil {
|
||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
||||
if *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages == true {
|
||||
if requestor == nil {
|
||||
if err := a.postJoinTeamMessage(user, townSquare); err != nil {
|
||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
||||
}
|
||||
} else {
|
||||
if err := a.PostAddToTeamMessage(requestor, user, townSquare, ""); err != nil {
|
||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1012,6 +1014,10 @@ func (a *App) LeaveChannel(channelId string, userId string) *model.AppError {
|
||||
return err
|
||||
}
|
||||
|
||||
if channel.Name == model.DEFAULT_CHANNEL && *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages == false {
|
||||
return nil
|
||||
}
|
||||
|
||||
a.Go(func() {
|
||||
a.postLeaveChannelMessage(user, channel)
|
||||
})
|
||||
|
||||
@@ -190,53 +190,54 @@ func (a *App) trackActivity() {
|
||||
func (a *App) trackConfig() {
|
||||
cfg := a.Config()
|
||||
a.SendDiagnostic(TRACK_CONFIG_SERVICE, map[string]interface{}{
|
||||
"web_server_mode": *cfg.ServiceSettings.WebserverMode,
|
||||
"enable_security_fix_alert": *cfg.ServiceSettings.EnableSecurityFixAlert,
|
||||
"enable_insecure_outgoing_connections": *cfg.ServiceSettings.EnableInsecureOutgoingConnections,
|
||||
"enable_incoming_webhooks": cfg.ServiceSettings.EnableIncomingWebhooks,
|
||||
"enable_outgoing_webhooks": cfg.ServiceSettings.EnableOutgoingWebhooks,
|
||||
"enable_commands": *cfg.ServiceSettings.EnableCommands,
|
||||
"enable_only_admin_integrations": *cfg.ServiceSettings.EnableOnlyAdminIntegrations,
|
||||
"enable_post_username_override": cfg.ServiceSettings.EnablePostUsernameOverride,
|
||||
"enable_post_icon_override": cfg.ServiceSettings.EnablePostIconOverride,
|
||||
"enable_apiv3": *cfg.ServiceSettings.EnableAPIv3,
|
||||
"enable_user_access_tokens": *cfg.ServiceSettings.EnableUserAccessTokens,
|
||||
"enable_custom_emoji": *cfg.ServiceSettings.EnableCustomEmoji,
|
||||
"enable_emoji_picker": *cfg.ServiceSettings.EnableEmojiPicker,
|
||||
"experimental_enable_authentication_transfer": *cfg.ServiceSettings.ExperimentalEnableAuthenticationTransfer,
|
||||
"restrict_custom_emoji_creation": *cfg.ServiceSettings.RestrictCustomEmojiCreation,
|
||||
"enable_testing": cfg.ServiceSettings.EnableTesting,
|
||||
"enable_developer": *cfg.ServiceSettings.EnableDeveloper,
|
||||
"enable_multifactor_authentication": *cfg.ServiceSettings.EnableMultifactorAuthentication,
|
||||
"enforce_multifactor_authentication": *cfg.ServiceSettings.EnforceMultifactorAuthentication,
|
||||
"enable_oauth_service_provider": cfg.ServiceSettings.EnableOAuthServiceProvider,
|
||||
"connection_security": *cfg.ServiceSettings.ConnectionSecurity,
|
||||
"uses_letsencrypt": *cfg.ServiceSettings.UseLetsEncrypt,
|
||||
"forward_80_to_443": *cfg.ServiceSettings.Forward80To443,
|
||||
"maximum_login_attempts": *cfg.ServiceSettings.MaximumLoginAttempts,
|
||||
"session_length_web_in_days": *cfg.ServiceSettings.SessionLengthWebInDays,
|
||||
"session_length_mobile_in_days": *cfg.ServiceSettings.SessionLengthMobileInDays,
|
||||
"session_length_sso_in_days": *cfg.ServiceSettings.SessionLengthSSOInDays,
|
||||
"session_cache_in_minutes": *cfg.ServiceSettings.SessionCacheInMinutes,
|
||||
"session_idle_timeout_in_minutes": *cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
|
||||
"isdefault_site_url": isDefault(*cfg.ServiceSettings.SiteURL, model.SERVICE_SETTINGS_DEFAULT_SITE_URL),
|
||||
"isdefault_tls_cert_file": isDefault(*cfg.ServiceSettings.TLSCertFile, model.SERVICE_SETTINGS_DEFAULT_TLS_CERT_FILE),
|
||||
"isdefault_tls_key_file": isDefault(*cfg.ServiceSettings.TLSKeyFile, model.SERVICE_SETTINGS_DEFAULT_TLS_KEY_FILE),
|
||||
"isdefault_read_timeout": isDefault(*cfg.ServiceSettings.ReadTimeout, model.SERVICE_SETTINGS_DEFAULT_READ_TIMEOUT),
|
||||
"isdefault_write_timeout": isDefault(*cfg.ServiceSettings.WriteTimeout, model.SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT),
|
||||
"isdefault_google_developer_key": isDefault(cfg.ServiceSettings.GoogleDeveloperKey, ""),
|
||||
"isdefault_allow_cors_from": isDefault(*cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
|
||||
"isdefault_allowed_untrusted_internal_connections": isDefault(*cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
|
||||
"restrict_post_delete": *cfg.ServiceSettings.RestrictPostDelete,
|
||||
"allow_edit_post": *cfg.ServiceSettings.AllowEditPost,
|
||||
"post_edit_time_limit": *cfg.ServiceSettings.PostEditTimeLimit,
|
||||
"enable_user_typing_messages": *cfg.ServiceSettings.EnableUserTypingMessages,
|
||||
"enable_channel_viewed_messages": *cfg.ServiceSettings.EnableChannelViewedMessages,
|
||||
"time_between_user_typing_updates_milliseconds": *cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
|
||||
"cluster_log_timeout_milliseconds": *cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
|
||||
"enable_post_search": *cfg.ServiceSettings.EnablePostSearch,
|
||||
"enable_user_statuses": *cfg.ServiceSettings.EnableUserStatuses,
|
||||
"close_unused_direct_messages": *cfg.ServiceSettings.CloseUnusedDirectMessages,
|
||||
"web_server_mode": *cfg.ServiceSettings.WebserverMode,
|
||||
"enable_security_fix_alert": *cfg.ServiceSettings.EnableSecurityFixAlert,
|
||||
"enable_insecure_outgoing_connections": *cfg.ServiceSettings.EnableInsecureOutgoingConnections,
|
||||
"enable_incoming_webhooks": cfg.ServiceSettings.EnableIncomingWebhooks,
|
||||
"enable_outgoing_webhooks": cfg.ServiceSettings.EnableOutgoingWebhooks,
|
||||
"enable_commands": *cfg.ServiceSettings.EnableCommands,
|
||||
"enable_only_admin_integrations": *cfg.ServiceSettings.EnableOnlyAdminIntegrations,
|
||||
"enable_post_username_override": cfg.ServiceSettings.EnablePostUsernameOverride,
|
||||
"enable_post_icon_override": cfg.ServiceSettings.EnablePostIconOverride,
|
||||
"enable_apiv3": *cfg.ServiceSettings.EnableAPIv3,
|
||||
"enable_user_access_tokens": *cfg.ServiceSettings.EnableUserAccessTokens,
|
||||
"enable_custom_emoji": *cfg.ServiceSettings.EnableCustomEmoji,
|
||||
"enable_emoji_picker": *cfg.ServiceSettings.EnableEmojiPicker,
|
||||
"experimental_enable_authentication_transfer": *cfg.ServiceSettings.ExperimentalEnableAuthenticationTransfer,
|
||||
"restrict_custom_emoji_creation": *cfg.ServiceSettings.RestrictCustomEmojiCreation,
|
||||
"enable_testing": cfg.ServiceSettings.EnableTesting,
|
||||
"enable_developer": *cfg.ServiceSettings.EnableDeveloper,
|
||||
"enable_multifactor_authentication": *cfg.ServiceSettings.EnableMultifactorAuthentication,
|
||||
"enforce_multifactor_authentication": *cfg.ServiceSettings.EnforceMultifactorAuthentication,
|
||||
"enable_oauth_service_provider": cfg.ServiceSettings.EnableOAuthServiceProvider,
|
||||
"connection_security": *cfg.ServiceSettings.ConnectionSecurity,
|
||||
"uses_letsencrypt": *cfg.ServiceSettings.UseLetsEncrypt,
|
||||
"forward_80_to_443": *cfg.ServiceSettings.Forward80To443,
|
||||
"maximum_login_attempts": *cfg.ServiceSettings.MaximumLoginAttempts,
|
||||
"session_length_web_in_days": *cfg.ServiceSettings.SessionLengthWebInDays,
|
||||
"session_length_mobile_in_days": *cfg.ServiceSettings.SessionLengthMobileInDays,
|
||||
"session_length_sso_in_days": *cfg.ServiceSettings.SessionLengthSSOInDays,
|
||||
"session_cache_in_minutes": *cfg.ServiceSettings.SessionCacheInMinutes,
|
||||
"session_idle_timeout_in_minutes": *cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
|
||||
"isdefault_site_url": isDefault(*cfg.ServiceSettings.SiteURL, model.SERVICE_SETTINGS_DEFAULT_SITE_URL),
|
||||
"isdefault_tls_cert_file": isDefault(*cfg.ServiceSettings.TLSCertFile, model.SERVICE_SETTINGS_DEFAULT_TLS_CERT_FILE),
|
||||
"isdefault_tls_key_file": isDefault(*cfg.ServiceSettings.TLSKeyFile, model.SERVICE_SETTINGS_DEFAULT_TLS_KEY_FILE),
|
||||
"isdefault_read_timeout": isDefault(*cfg.ServiceSettings.ReadTimeout, model.SERVICE_SETTINGS_DEFAULT_READ_TIMEOUT),
|
||||
"isdefault_write_timeout": isDefault(*cfg.ServiceSettings.WriteTimeout, model.SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT),
|
||||
"isdefault_google_developer_key": isDefault(cfg.ServiceSettings.GoogleDeveloperKey, ""),
|
||||
"isdefault_allow_cors_from": isDefault(*cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
|
||||
"isdefault_allowed_untrusted_internal_connections": isDefault(*cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
|
||||
"restrict_post_delete": *cfg.ServiceSettings.RestrictPostDelete,
|
||||
"allow_edit_post": *cfg.ServiceSettings.AllowEditPost,
|
||||
"post_edit_time_limit": *cfg.ServiceSettings.PostEditTimeLimit,
|
||||
"enable_user_typing_messages": *cfg.ServiceSettings.EnableUserTypingMessages,
|
||||
"enable_channel_viewed_messages": *cfg.ServiceSettings.EnableChannelViewedMessages,
|
||||
"time_between_user_typing_updates_milliseconds": *cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
|
||||
"cluster_log_timeout_milliseconds": *cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
|
||||
"enable_post_search": *cfg.ServiceSettings.EnablePostSearch,
|
||||
"enable_user_statuses": *cfg.ServiceSettings.EnableUserStatuses,
|
||||
"close_unused_direct_messages": *cfg.ServiceSettings.CloseUnusedDirectMessages,
|
||||
"experimental_enable_default_channel_leave_join_messages": *cfg.ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages,
|
||||
})
|
||||
|
||||
a.SendDiagnostic(TRACK_CONFIG_TEAM, map[string]interface{}{
|
||||
|
||||
@@ -55,7 +55,8 @@
|
||||
"ClusterLogTimeoutMilliseconds": 2000,
|
||||
"EnablePreviewFeatures": true,
|
||||
"CloseUnusedDirectMessages": false,
|
||||
"EnableTutorial": true
|
||||
"EnableTutorial": true,
|
||||
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true
|
||||
},
|
||||
"TeamSettings": {
|
||||
"SiteName": "Mattermost",
|
||||
|
||||
117
model/config.go
117
model/config.go
@@ -157,62 +157,63 @@ const (
|
||||
)
|
||||
|
||||
type ServiceSettings struct {
|
||||
SiteURL *string
|
||||
LicenseFileLocation *string
|
||||
ListenAddress *string
|
||||
ConnectionSecurity *string
|
||||
TLSCertFile *string
|
||||
TLSKeyFile *string
|
||||
UseLetsEncrypt *bool
|
||||
LetsEncryptCertificateCacheFile *string
|
||||
Forward80To443 *bool
|
||||
ReadTimeout *int
|
||||
WriteTimeout *int
|
||||
MaximumLoginAttempts *int
|
||||
GoroutineHealthThreshold *int
|
||||
GoogleDeveloperKey string
|
||||
EnableOAuthServiceProvider bool
|
||||
EnableIncomingWebhooks bool
|
||||
EnableOutgoingWebhooks bool
|
||||
EnableCommands *bool
|
||||
EnableOnlyAdminIntegrations *bool
|
||||
EnablePostUsernameOverride bool
|
||||
EnablePostIconOverride bool
|
||||
EnableAPIv3 *bool
|
||||
EnableLinkPreviews *bool
|
||||
EnableTesting bool
|
||||
EnableDeveloper *bool
|
||||
EnableSecurityFixAlert *bool
|
||||
EnableInsecureOutgoingConnections *bool
|
||||
AllowedUntrustedInternalConnections *string
|
||||
EnableMultifactorAuthentication *bool
|
||||
EnforceMultifactorAuthentication *bool
|
||||
EnableUserAccessTokens *bool
|
||||
AllowCorsFrom *string
|
||||
SessionLengthWebInDays *int
|
||||
SessionLengthMobileInDays *int
|
||||
SessionLengthSSOInDays *int
|
||||
SessionCacheInMinutes *int
|
||||
SessionIdleTimeoutInMinutes *int
|
||||
WebsocketSecurePort *int
|
||||
WebsocketPort *int
|
||||
WebserverMode *string
|
||||
EnableCustomEmoji *bool
|
||||
EnableEmojiPicker *bool
|
||||
RestrictCustomEmojiCreation *string
|
||||
RestrictPostDelete *string
|
||||
AllowEditPost *string
|
||||
PostEditTimeLimit *int
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64
|
||||
EnablePostSearch *bool
|
||||
EnableUserTypingMessages *bool
|
||||
EnableChannelViewedMessages *bool
|
||||
EnableUserStatuses *bool
|
||||
ExperimentalEnableAuthenticationTransfer *bool
|
||||
ClusterLogTimeoutMilliseconds *int
|
||||
CloseUnusedDirectMessages *bool
|
||||
EnablePreviewFeatures *bool
|
||||
EnableTutorial *bool
|
||||
SiteURL *string
|
||||
LicenseFileLocation *string
|
||||
ListenAddress *string
|
||||
ConnectionSecurity *string
|
||||
TLSCertFile *string
|
||||
TLSKeyFile *string
|
||||
UseLetsEncrypt *bool
|
||||
LetsEncryptCertificateCacheFile *string
|
||||
Forward80To443 *bool
|
||||
ReadTimeout *int
|
||||
WriteTimeout *int
|
||||
MaximumLoginAttempts *int
|
||||
GoroutineHealthThreshold *int
|
||||
GoogleDeveloperKey string
|
||||
EnableOAuthServiceProvider bool
|
||||
EnableIncomingWebhooks bool
|
||||
EnableOutgoingWebhooks bool
|
||||
EnableCommands *bool
|
||||
EnableOnlyAdminIntegrations *bool
|
||||
EnablePostUsernameOverride bool
|
||||
EnablePostIconOverride bool
|
||||
EnableAPIv3 *bool
|
||||
EnableLinkPreviews *bool
|
||||
EnableTesting bool
|
||||
EnableDeveloper *bool
|
||||
EnableSecurityFixAlert *bool
|
||||
EnableInsecureOutgoingConnections *bool
|
||||
AllowedUntrustedInternalConnections *string
|
||||
EnableMultifactorAuthentication *bool
|
||||
EnforceMultifactorAuthentication *bool
|
||||
EnableUserAccessTokens *bool
|
||||
AllowCorsFrom *string
|
||||
SessionLengthWebInDays *int
|
||||
SessionLengthMobileInDays *int
|
||||
SessionLengthSSOInDays *int
|
||||
SessionCacheInMinutes *int
|
||||
SessionIdleTimeoutInMinutes *int
|
||||
WebsocketSecurePort *int
|
||||
WebsocketPort *int
|
||||
WebserverMode *string
|
||||
EnableCustomEmoji *bool
|
||||
EnableEmojiPicker *bool
|
||||
RestrictCustomEmojiCreation *string
|
||||
RestrictPostDelete *string
|
||||
AllowEditPost *string
|
||||
PostEditTimeLimit *int
|
||||
TimeBetweenUserTypingUpdatesMilliseconds *int64
|
||||
EnablePostSearch *bool
|
||||
EnableUserTypingMessages *bool
|
||||
EnableChannelViewedMessages *bool
|
||||
EnableUserStatuses *bool
|
||||
ExperimentalEnableAuthenticationTransfer *bool
|
||||
ClusterLogTimeoutMilliseconds *int
|
||||
CloseUnusedDirectMessages *bool
|
||||
EnablePreviewFeatures *bool
|
||||
EnableTutorial *bool
|
||||
ExperimentalEnableDefaultChannelLeaveJoinMessages *bool
|
||||
}
|
||||
|
||||
func (s *ServiceSettings) SetDefaults() {
|
||||
@@ -413,6 +414,10 @@ func (s *ServiceSettings) SetDefaults() {
|
||||
if s.EnablePreviewFeatures == nil {
|
||||
s.EnablePreviewFeatures = NewBool(true)
|
||||
}
|
||||
|
||||
if s.ExperimentalEnableDefaultChannelLeaveJoinMessages == nil {
|
||||
s.ExperimentalEnableDefaultChannelLeaveJoinMessages = NewBool(true)
|
||||
}
|
||||
}
|
||||
|
||||
type ClusterSettings struct {
|
||||
|
||||
@@ -475,6 +475,7 @@ func GenerateClientConfig(c *model.Config, diagnosticId string) map[string]strin
|
||||
props["CloseUnusedDirectMessages"] = strconv.FormatBool(*c.ServiceSettings.CloseUnusedDirectMessages)
|
||||
props["EnablePreviewFeatures"] = strconv.FormatBool(*c.ServiceSettings.EnablePreviewFeatures)
|
||||
props["EnableTutorial"] = strconv.FormatBool(*c.ServiceSettings.EnableTutorial)
|
||||
props["ExperimentalEnableDefaultChannelLeaveJoinMessages"] = strconv.FormatBool(*c.ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages)
|
||||
|
||||
props["SendEmailNotifications"] = strconv.FormatBool(c.EmailSettings.SendEmailNotifications)
|
||||
props["SendPushNotifications"] = strconv.FormatBool(*c.EmailSettings.SendPushNotifications)
|
||||
|
||||
Reference in New Issue
Block a user