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)
|
l4g.Warn("Failed to update ChannelMemberHistory table %v", result.Err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if requestor == nil {
|
if *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages == true {
|
||||||
if err := a.postJoinTeamMessage(user, townSquare); err != nil {
|
if requestor == nil {
|
||||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
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 {
|
} else {
|
||||||
l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err)
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if channel.Name == model.DEFAULT_CHANNEL && *a.Config().ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages == false {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
a.Go(func() {
|
a.Go(func() {
|
||||||
a.postLeaveChannelMessage(user, channel)
|
a.postLeaveChannelMessage(user, channel)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -190,53 +190,54 @@ func (a *App) trackActivity() {
|
|||||||
func (a *App) trackConfig() {
|
func (a *App) trackConfig() {
|
||||||
cfg := a.Config()
|
cfg := a.Config()
|
||||||
a.SendDiagnostic(TRACK_CONFIG_SERVICE, map[string]interface{}{
|
a.SendDiagnostic(TRACK_CONFIG_SERVICE, map[string]interface{}{
|
||||||
"web_server_mode": *cfg.ServiceSettings.WebserverMode,
|
"web_server_mode": *cfg.ServiceSettings.WebserverMode,
|
||||||
"enable_security_fix_alert": *cfg.ServiceSettings.EnableSecurityFixAlert,
|
"enable_security_fix_alert": *cfg.ServiceSettings.EnableSecurityFixAlert,
|
||||||
"enable_insecure_outgoing_connections": *cfg.ServiceSettings.EnableInsecureOutgoingConnections,
|
"enable_insecure_outgoing_connections": *cfg.ServiceSettings.EnableInsecureOutgoingConnections,
|
||||||
"enable_incoming_webhooks": cfg.ServiceSettings.EnableIncomingWebhooks,
|
"enable_incoming_webhooks": cfg.ServiceSettings.EnableIncomingWebhooks,
|
||||||
"enable_outgoing_webhooks": cfg.ServiceSettings.EnableOutgoingWebhooks,
|
"enable_outgoing_webhooks": cfg.ServiceSettings.EnableOutgoingWebhooks,
|
||||||
"enable_commands": *cfg.ServiceSettings.EnableCommands,
|
"enable_commands": *cfg.ServiceSettings.EnableCommands,
|
||||||
"enable_only_admin_integrations": *cfg.ServiceSettings.EnableOnlyAdminIntegrations,
|
"enable_only_admin_integrations": *cfg.ServiceSettings.EnableOnlyAdminIntegrations,
|
||||||
"enable_post_username_override": cfg.ServiceSettings.EnablePostUsernameOverride,
|
"enable_post_username_override": cfg.ServiceSettings.EnablePostUsernameOverride,
|
||||||
"enable_post_icon_override": cfg.ServiceSettings.EnablePostIconOverride,
|
"enable_post_icon_override": cfg.ServiceSettings.EnablePostIconOverride,
|
||||||
"enable_apiv3": *cfg.ServiceSettings.EnableAPIv3,
|
"enable_apiv3": *cfg.ServiceSettings.EnableAPIv3,
|
||||||
"enable_user_access_tokens": *cfg.ServiceSettings.EnableUserAccessTokens,
|
"enable_user_access_tokens": *cfg.ServiceSettings.EnableUserAccessTokens,
|
||||||
"enable_custom_emoji": *cfg.ServiceSettings.EnableCustomEmoji,
|
"enable_custom_emoji": *cfg.ServiceSettings.EnableCustomEmoji,
|
||||||
"enable_emoji_picker": *cfg.ServiceSettings.EnableEmojiPicker,
|
"enable_emoji_picker": *cfg.ServiceSettings.EnableEmojiPicker,
|
||||||
"experimental_enable_authentication_transfer": *cfg.ServiceSettings.ExperimentalEnableAuthenticationTransfer,
|
"experimental_enable_authentication_transfer": *cfg.ServiceSettings.ExperimentalEnableAuthenticationTransfer,
|
||||||
"restrict_custom_emoji_creation": *cfg.ServiceSettings.RestrictCustomEmojiCreation,
|
"restrict_custom_emoji_creation": *cfg.ServiceSettings.RestrictCustomEmojiCreation,
|
||||||
"enable_testing": cfg.ServiceSettings.EnableTesting,
|
"enable_testing": cfg.ServiceSettings.EnableTesting,
|
||||||
"enable_developer": *cfg.ServiceSettings.EnableDeveloper,
|
"enable_developer": *cfg.ServiceSettings.EnableDeveloper,
|
||||||
"enable_multifactor_authentication": *cfg.ServiceSettings.EnableMultifactorAuthentication,
|
"enable_multifactor_authentication": *cfg.ServiceSettings.EnableMultifactorAuthentication,
|
||||||
"enforce_multifactor_authentication": *cfg.ServiceSettings.EnforceMultifactorAuthentication,
|
"enforce_multifactor_authentication": *cfg.ServiceSettings.EnforceMultifactorAuthentication,
|
||||||
"enable_oauth_service_provider": cfg.ServiceSettings.EnableOAuthServiceProvider,
|
"enable_oauth_service_provider": cfg.ServiceSettings.EnableOAuthServiceProvider,
|
||||||
"connection_security": *cfg.ServiceSettings.ConnectionSecurity,
|
"connection_security": *cfg.ServiceSettings.ConnectionSecurity,
|
||||||
"uses_letsencrypt": *cfg.ServiceSettings.UseLetsEncrypt,
|
"uses_letsencrypt": *cfg.ServiceSettings.UseLetsEncrypt,
|
||||||
"forward_80_to_443": *cfg.ServiceSettings.Forward80To443,
|
"forward_80_to_443": *cfg.ServiceSettings.Forward80To443,
|
||||||
"maximum_login_attempts": *cfg.ServiceSettings.MaximumLoginAttempts,
|
"maximum_login_attempts": *cfg.ServiceSettings.MaximumLoginAttempts,
|
||||||
"session_length_web_in_days": *cfg.ServiceSettings.SessionLengthWebInDays,
|
"session_length_web_in_days": *cfg.ServiceSettings.SessionLengthWebInDays,
|
||||||
"session_length_mobile_in_days": *cfg.ServiceSettings.SessionLengthMobileInDays,
|
"session_length_mobile_in_days": *cfg.ServiceSettings.SessionLengthMobileInDays,
|
||||||
"session_length_sso_in_days": *cfg.ServiceSettings.SessionLengthSSOInDays,
|
"session_length_sso_in_days": *cfg.ServiceSettings.SessionLengthSSOInDays,
|
||||||
"session_cache_in_minutes": *cfg.ServiceSettings.SessionCacheInMinutes,
|
"session_cache_in_minutes": *cfg.ServiceSettings.SessionCacheInMinutes,
|
||||||
"session_idle_timeout_in_minutes": *cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
|
"session_idle_timeout_in_minutes": *cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
|
||||||
"isdefault_site_url": isDefault(*cfg.ServiceSettings.SiteURL, model.SERVICE_SETTINGS_DEFAULT_SITE_URL),
|
"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_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_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_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_write_timeout": isDefault(*cfg.ServiceSettings.WriteTimeout, model.SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT),
|
||||||
"isdefault_google_developer_key": isDefault(cfg.ServiceSettings.GoogleDeveloperKey, ""),
|
"isdefault_google_developer_key": isDefault(cfg.ServiceSettings.GoogleDeveloperKey, ""),
|
||||||
"isdefault_allow_cors_from": isDefault(*cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
|
"isdefault_allow_cors_from": isDefault(*cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
|
||||||
"isdefault_allowed_untrusted_internal_connections": isDefault(*cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
|
"isdefault_allowed_untrusted_internal_connections": isDefault(*cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
|
||||||
"restrict_post_delete": *cfg.ServiceSettings.RestrictPostDelete,
|
"restrict_post_delete": *cfg.ServiceSettings.RestrictPostDelete,
|
||||||
"allow_edit_post": *cfg.ServiceSettings.AllowEditPost,
|
"allow_edit_post": *cfg.ServiceSettings.AllowEditPost,
|
||||||
"post_edit_time_limit": *cfg.ServiceSettings.PostEditTimeLimit,
|
"post_edit_time_limit": *cfg.ServiceSettings.PostEditTimeLimit,
|
||||||
"enable_user_typing_messages": *cfg.ServiceSettings.EnableUserTypingMessages,
|
"enable_user_typing_messages": *cfg.ServiceSettings.EnableUserTypingMessages,
|
||||||
"enable_channel_viewed_messages": *cfg.ServiceSettings.EnableChannelViewedMessages,
|
"enable_channel_viewed_messages": *cfg.ServiceSettings.EnableChannelViewedMessages,
|
||||||
"time_between_user_typing_updates_milliseconds": *cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
|
"time_between_user_typing_updates_milliseconds": *cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
|
||||||
"cluster_log_timeout_milliseconds": *cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
|
"cluster_log_timeout_milliseconds": *cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
|
||||||
"enable_post_search": *cfg.ServiceSettings.EnablePostSearch,
|
"enable_post_search": *cfg.ServiceSettings.EnablePostSearch,
|
||||||
"enable_user_statuses": *cfg.ServiceSettings.EnableUserStatuses,
|
"enable_user_statuses": *cfg.ServiceSettings.EnableUserStatuses,
|
||||||
"close_unused_direct_messages": *cfg.ServiceSettings.CloseUnusedDirectMessages,
|
"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{}{
|
a.SendDiagnostic(TRACK_CONFIG_TEAM, map[string]interface{}{
|
||||||
|
|||||||
@@ -55,7 +55,8 @@
|
|||||||
"ClusterLogTimeoutMilliseconds": 2000,
|
"ClusterLogTimeoutMilliseconds": 2000,
|
||||||
"EnablePreviewFeatures": true,
|
"EnablePreviewFeatures": true,
|
||||||
"CloseUnusedDirectMessages": false,
|
"CloseUnusedDirectMessages": false,
|
||||||
"EnableTutorial": true
|
"EnableTutorial": true,
|
||||||
|
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true
|
||||||
},
|
},
|
||||||
"TeamSettings": {
|
"TeamSettings": {
|
||||||
"SiteName": "Mattermost",
|
"SiteName": "Mattermost",
|
||||||
|
|||||||
117
model/config.go
117
model/config.go
@@ -157,62 +157,63 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ServiceSettings struct {
|
type ServiceSettings struct {
|
||||||
SiteURL *string
|
SiteURL *string
|
||||||
LicenseFileLocation *string
|
LicenseFileLocation *string
|
||||||
ListenAddress *string
|
ListenAddress *string
|
||||||
ConnectionSecurity *string
|
ConnectionSecurity *string
|
||||||
TLSCertFile *string
|
TLSCertFile *string
|
||||||
TLSKeyFile *string
|
TLSKeyFile *string
|
||||||
UseLetsEncrypt *bool
|
UseLetsEncrypt *bool
|
||||||
LetsEncryptCertificateCacheFile *string
|
LetsEncryptCertificateCacheFile *string
|
||||||
Forward80To443 *bool
|
Forward80To443 *bool
|
||||||
ReadTimeout *int
|
ReadTimeout *int
|
||||||
WriteTimeout *int
|
WriteTimeout *int
|
||||||
MaximumLoginAttempts *int
|
MaximumLoginAttempts *int
|
||||||
GoroutineHealthThreshold *int
|
GoroutineHealthThreshold *int
|
||||||
GoogleDeveloperKey string
|
GoogleDeveloperKey string
|
||||||
EnableOAuthServiceProvider bool
|
EnableOAuthServiceProvider bool
|
||||||
EnableIncomingWebhooks bool
|
EnableIncomingWebhooks bool
|
||||||
EnableOutgoingWebhooks bool
|
EnableOutgoingWebhooks bool
|
||||||
EnableCommands *bool
|
EnableCommands *bool
|
||||||
EnableOnlyAdminIntegrations *bool
|
EnableOnlyAdminIntegrations *bool
|
||||||
EnablePostUsernameOverride bool
|
EnablePostUsernameOverride bool
|
||||||
EnablePostIconOverride bool
|
EnablePostIconOverride bool
|
||||||
EnableAPIv3 *bool
|
EnableAPIv3 *bool
|
||||||
EnableLinkPreviews *bool
|
EnableLinkPreviews *bool
|
||||||
EnableTesting bool
|
EnableTesting bool
|
||||||
EnableDeveloper *bool
|
EnableDeveloper *bool
|
||||||
EnableSecurityFixAlert *bool
|
EnableSecurityFixAlert *bool
|
||||||
EnableInsecureOutgoingConnections *bool
|
EnableInsecureOutgoingConnections *bool
|
||||||
AllowedUntrustedInternalConnections *string
|
AllowedUntrustedInternalConnections *string
|
||||||
EnableMultifactorAuthentication *bool
|
EnableMultifactorAuthentication *bool
|
||||||
EnforceMultifactorAuthentication *bool
|
EnforceMultifactorAuthentication *bool
|
||||||
EnableUserAccessTokens *bool
|
EnableUserAccessTokens *bool
|
||||||
AllowCorsFrom *string
|
AllowCorsFrom *string
|
||||||
SessionLengthWebInDays *int
|
SessionLengthWebInDays *int
|
||||||
SessionLengthMobileInDays *int
|
SessionLengthMobileInDays *int
|
||||||
SessionLengthSSOInDays *int
|
SessionLengthSSOInDays *int
|
||||||
SessionCacheInMinutes *int
|
SessionCacheInMinutes *int
|
||||||
SessionIdleTimeoutInMinutes *int
|
SessionIdleTimeoutInMinutes *int
|
||||||
WebsocketSecurePort *int
|
WebsocketSecurePort *int
|
||||||
WebsocketPort *int
|
WebsocketPort *int
|
||||||
WebserverMode *string
|
WebserverMode *string
|
||||||
EnableCustomEmoji *bool
|
EnableCustomEmoji *bool
|
||||||
EnableEmojiPicker *bool
|
EnableEmojiPicker *bool
|
||||||
RestrictCustomEmojiCreation *string
|
RestrictCustomEmojiCreation *string
|
||||||
RestrictPostDelete *string
|
RestrictPostDelete *string
|
||||||
AllowEditPost *string
|
AllowEditPost *string
|
||||||
PostEditTimeLimit *int
|
PostEditTimeLimit *int
|
||||||
TimeBetweenUserTypingUpdatesMilliseconds *int64
|
TimeBetweenUserTypingUpdatesMilliseconds *int64
|
||||||
EnablePostSearch *bool
|
EnablePostSearch *bool
|
||||||
EnableUserTypingMessages *bool
|
EnableUserTypingMessages *bool
|
||||||
EnableChannelViewedMessages *bool
|
EnableChannelViewedMessages *bool
|
||||||
EnableUserStatuses *bool
|
EnableUserStatuses *bool
|
||||||
ExperimentalEnableAuthenticationTransfer *bool
|
ExperimentalEnableAuthenticationTransfer *bool
|
||||||
ClusterLogTimeoutMilliseconds *int
|
ClusterLogTimeoutMilliseconds *int
|
||||||
CloseUnusedDirectMessages *bool
|
CloseUnusedDirectMessages *bool
|
||||||
EnablePreviewFeatures *bool
|
EnablePreviewFeatures *bool
|
||||||
EnableTutorial *bool
|
EnableTutorial *bool
|
||||||
|
ExperimentalEnableDefaultChannelLeaveJoinMessages *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ServiceSettings) SetDefaults() {
|
func (s *ServiceSettings) SetDefaults() {
|
||||||
@@ -413,6 +414,10 @@ func (s *ServiceSettings) SetDefaults() {
|
|||||||
if s.EnablePreviewFeatures == nil {
|
if s.EnablePreviewFeatures == nil {
|
||||||
s.EnablePreviewFeatures = NewBool(true)
|
s.EnablePreviewFeatures = NewBool(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if s.ExperimentalEnableDefaultChannelLeaveJoinMessages == nil {
|
||||||
|
s.ExperimentalEnableDefaultChannelLeaveJoinMessages = NewBool(true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type ClusterSettings struct {
|
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["CloseUnusedDirectMessages"] = strconv.FormatBool(*c.ServiceSettings.CloseUnusedDirectMessages)
|
||||||
props["EnablePreviewFeatures"] = strconv.FormatBool(*c.ServiceSettings.EnablePreviewFeatures)
|
props["EnablePreviewFeatures"] = strconv.FormatBool(*c.ServiceSettings.EnablePreviewFeatures)
|
||||||
props["EnableTutorial"] = strconv.FormatBool(*c.ServiceSettings.EnableTutorial)
|
props["EnableTutorial"] = strconv.FormatBool(*c.ServiceSettings.EnableTutorial)
|
||||||
|
props["ExperimentalEnableDefaultChannelLeaveJoinMessages"] = strconv.FormatBool(*c.ServiceSettings.ExperimentalEnableDefaultChannelLeaveJoinMessages)
|
||||||
|
|
||||||
props["SendEmailNotifications"] = strconv.FormatBool(c.EmailSettings.SendEmailNotifications)
|
props["SendEmailNotifications"] = strconv.FormatBool(c.EmailSettings.SendEmailNotifications)
|
||||||
props["SendPushNotifications"] = strconv.FormatBool(*c.EmailSettings.SendPushNotifications)
|
props["SendPushNotifications"] = strconv.FormatBool(*c.EmailSettings.SendPushNotifications)
|
||||||
|
|||||||
Reference in New Issue
Block a user