diff options
-rw-r--r-- | app/diagnostics.go | 53 | ||||
-rw-r--r-- | app/import.go | 16 | ||||
-rw-r--r-- | app/import_test.go | 10 | ||||
-rw-r--r-- | config/default.json | 1 | ||||
-rw-r--r-- | i18n/en.json | 4 | ||||
-rw-r--r-- | model/config.go | 5 | ||||
-rw-r--r-- | model/user.go | 1 | ||||
-rw-r--r-- | utils/config.go | 2 |
8 files changed, 37 insertions, 55 deletions
diff --git a/app/diagnostics.go b/app/diagnostics.go index 527ca9840..2c1fe64ab 100644 --- a/app/diagnostics.go +++ b/app/diagnostics.go @@ -244,32 +244,33 @@ func (a *App) trackConfig() { }) a.SendDiagnostic(TRACK_CONFIG_TEAM, map[string]interface{}{ - "enable_user_creation": *cfg.TeamSettings.EnableUserCreation, - "enable_team_creation": *cfg.TeamSettings.EnableTeamCreation, - "restrict_team_invite": *cfg.TeamSettings.RestrictTeamInvite, - "restrict_public_channel_creation": *cfg.TeamSettings.RestrictPublicChannelCreation, - "restrict_private_channel_creation": *cfg.TeamSettings.RestrictPrivateChannelCreation, - "restrict_public_channel_management": *cfg.TeamSettings.RestrictPublicChannelManagement, - "restrict_private_channel_management": *cfg.TeamSettings.RestrictPrivateChannelManagement, - "restrict_public_channel_deletion": *cfg.TeamSettings.RestrictPublicChannelDeletion, - "restrict_private_channel_deletion": *cfg.TeamSettings.RestrictPrivateChannelDeletion, - "enable_open_server": *cfg.TeamSettings.EnableOpenServer, - "enable_custom_brand": *cfg.TeamSettings.EnableCustomBrand, - "restrict_direct_message": *cfg.TeamSettings.RestrictDirectMessage, - "max_notifications_per_channel": *cfg.TeamSettings.MaxNotificationsPerChannel, - "enable_confirm_notifications_to_channel": *cfg.TeamSettings.EnableConfirmNotificationsToChannel, - "max_users_per_team": *cfg.TeamSettings.MaxUsersPerTeam, - "max_channels_per_team": *cfg.TeamSettings.MaxChannelsPerTeam, - "teammate_name_display": *cfg.TeamSettings.TeammateNameDisplay, - "isdefault_site_name": isDefault(cfg.TeamSettings.SiteName, "Mattermost"), - "isdefault_custom_brand_text": isDefault(*cfg.TeamSettings.CustomBrandText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_BRAND_TEXT), - "isdefault_custom_description_text": isDefault(*cfg.TeamSettings.CustomDescriptionText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT), - "isdefault_user_status_away_timeout": isDefault(*cfg.TeamSettings.UserStatusAwayTimeout, model.TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT), - "restrict_private_channel_manage_members": *cfg.TeamSettings.RestrictPrivateChannelManageMembers, - "enable_X_to_leave_channels_from_LHS": *cfg.TeamSettings.EnableXToLeaveChannelsFromLHS, - "experimental_enable_automatic_replies": *cfg.TeamSettings.ExperimentalEnableAutomaticReplies, - "experimental_town_square_is_read_only": *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly, - "experimental_primary_team": isDefault(*cfg.TeamSettings.ExperimentalPrimaryTeam, ""), + "enable_user_creation": cfg.TeamSettings.EnableUserCreation, + "enable_team_creation": *cfg.TeamSettings.EnableTeamCreation, + "restrict_team_invite": *cfg.TeamSettings.RestrictTeamInvite, + "restrict_public_channel_creation": *cfg.TeamSettings.RestrictPublicChannelCreation, + "restrict_private_channel_creation": *cfg.TeamSettings.RestrictPrivateChannelCreation, + "restrict_public_channel_management": *cfg.TeamSettings.RestrictPublicChannelManagement, + "restrict_private_channel_management": *cfg.TeamSettings.RestrictPrivateChannelManagement, + "restrict_public_channel_deletion": *cfg.TeamSettings.RestrictPublicChannelDeletion, + "restrict_private_channel_deletion": *cfg.TeamSettings.RestrictPrivateChannelDeletion, + "enable_open_server": *cfg.TeamSettings.EnableOpenServer, + "enable_custom_brand": *cfg.TeamSettings.EnableCustomBrand, + "restrict_direct_message": *cfg.TeamSettings.RestrictDirectMessage, + "max_notifications_per_channel": *cfg.TeamSettings.MaxNotificationsPerChannel, + "enable_confirm_notifications_to_channel": *cfg.TeamSettings.EnableConfirmNotificationsToChannel, + "max_users_per_team": *cfg.TeamSettings.MaxUsersPerTeam, + "max_channels_per_team": *cfg.TeamSettings.MaxChannelsPerTeam, + "teammate_name_display": *cfg.TeamSettings.TeammateNameDisplay, + "isdefault_site_name": isDefault(cfg.TeamSettings.SiteName, "Mattermost"), + "isdefault_custom_brand_text": isDefault(*cfg.TeamSettings.CustomBrandText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_BRAND_TEXT), + "isdefault_custom_description_text": isDefault(*cfg.TeamSettings.CustomDescriptionText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT), + "isdefault_user_status_away_timeout": isDefault(*cfg.TeamSettings.UserStatusAwayTimeout, model.TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT), + "restrict_private_channel_manage_members": *cfg.TeamSettings.RestrictPrivateChannelManageMembers, + "enable_X_to_leave_channels_from_LHS": *cfg.TeamSettings.EnableXToLeaveChannelsFromLHS, + "experimental_enable_automatic_replies": *cfg.TeamSettings.ExperimentalEnableAutomaticReplies, + "experimental_town_square_is_hidden_in_lhs": *cfg.TeamSettings.ExperimentalHideTownSquareinLHS, + "experimental_town_square_is_read_only": *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly, + "experimental_primary_team": isDefault(*cfg.TeamSettings.ExperimentalPrimaryTeam, ""), }) a.SendDiagnostic(TRACK_CONFIG_CLIENT_REQ, map[string]interface{}{ diff --git a/app/import.go b/app/import.go index fc0bfafa6..8075497a0 100644 --- a/app/import.go +++ b/app/import.go @@ -79,9 +79,8 @@ type UserImportData struct { } type UserNotifyPropsImportData struct { - Desktop *string `json:"desktop"` - DesktopDuration *string `json:"desktop_duration"` - DesktopSound *string `json:"desktop_sound"` + Desktop *string `json:"desktop"` + DesktopSound *string `json:"desktop_sound"` Email *string `json:"email"` @@ -608,13 +607,6 @@ func (a *App) ImportUser(data *UserImportData, dryRun bool) *model.AppError { } } - if data.NotifyProps.DesktopDuration != nil { - if value, ok := user.NotifyProps[model.DESKTOP_DURATION_NOTIFY_PROP]; !ok || value != *data.NotifyProps.DesktopDuration { - user.AddNotifyProp(model.DESKTOP_DURATION_NOTIFY_PROP, *data.NotifyProps.DesktopDuration) - hasNotifyPropsChanged = true - } - } - if data.NotifyProps.DesktopSound != nil { if value, ok := user.NotifyProps[model.DESKTOP_SOUND_NOTIFY_PROP]; !ok || value != *data.NotifyProps.DesktopSound { user.AddNotifyProp(model.DESKTOP_SOUND_NOTIFY_PROP, *data.NotifyProps.DesktopSound) @@ -969,10 +961,6 @@ func validateUserImportData(data *UserImportData) *model.AppError { return model.NewAppError("BulkImport", "app.import.validate_user_import_data.notify_props_desktop_invalid.error", nil, "", http.StatusBadRequest) } - if data.NotifyProps.DesktopDuration != nil && !model.IsValidNumberString(*data.NotifyProps.DesktopDuration) { - return model.NewAppError("BulkImport", "app.import.validate_user_import_data.notify_props_desktop_duration_invalid.error", nil, "", http.StatusBadRequest) - } - if data.NotifyProps.DesktopSound != nil && !model.IsValidTrueOrFalseString(*data.NotifyProps.DesktopSound) { return model.NewAppError("BulkImport", "app.import.validate_user_import_data.notify_props_desktop_sound_invalid.error", nil, "", http.StatusBadRequest) } diff --git a/app/import_test.go b/app/import_test.go index 1024a5438..a6bc7c467 100644 --- a/app/import_test.go +++ b/app/import_test.go @@ -430,10 +430,6 @@ func TestImportValidateUserImportData(t *testing.T) { checkError(t, validateUserImportData(&data)) data.NotifyProps.Desktop = ptrStr(model.USER_NOTIFY_ALL) - data.NotifyProps.DesktopDuration = ptrStr("invalid") - checkError(t, validateUserImportData(&data)) - - data.NotifyProps.DesktopDuration = ptrStr("5") data.NotifyProps.DesktopSound = ptrStr("invalid") checkError(t, validateUserImportData(&data)) @@ -1980,7 +1976,6 @@ func TestImportImportUser(t *testing.T) { // Set Notify Props data.NotifyProps = &UserNotifyPropsImportData{ Desktop: ptrStr(model.USER_NOTIFY_ALL), - DesktopDuration: ptrStr("5"), DesktopSound: ptrStr("true"), Email: ptrStr("true"), Mobile: ptrStr(model.USER_NOTIFY_ALL), @@ -1999,7 +1994,6 @@ func TestImportImportUser(t *testing.T) { } checkNotifyProp(t, user, model.DESKTOP_NOTIFY_PROP, model.USER_NOTIFY_ALL) - checkNotifyProp(t, user, model.DESKTOP_DURATION_NOTIFY_PROP, "5") checkNotifyProp(t, user, model.DESKTOP_SOUND_NOTIFY_PROP, "true") checkNotifyProp(t, user, model.EMAIL_NOTIFY_PROP, "true") checkNotifyProp(t, user, model.PUSH_NOTIFY_PROP, model.USER_NOTIFY_ALL) @@ -2011,7 +2005,6 @@ func TestImportImportUser(t *testing.T) { // Change Notify Props data.NotifyProps = &UserNotifyPropsImportData{ Desktop: ptrStr(model.USER_NOTIFY_MENTION), - DesktopDuration: ptrStr("3"), DesktopSound: ptrStr("false"), Email: ptrStr("false"), Mobile: ptrStr(model.USER_NOTIFY_NONE), @@ -2030,7 +2023,6 @@ func TestImportImportUser(t *testing.T) { } checkNotifyProp(t, user, model.DESKTOP_NOTIFY_PROP, model.USER_NOTIFY_MENTION) - checkNotifyProp(t, user, model.DESKTOP_DURATION_NOTIFY_PROP, "3") checkNotifyProp(t, user, model.DESKTOP_SOUND_NOTIFY_PROP, "false") checkNotifyProp(t, user, model.EMAIL_NOTIFY_PROP, "false") checkNotifyProp(t, user, model.PUSH_NOTIFY_PROP, model.USER_NOTIFY_NONE) @@ -2047,7 +2039,6 @@ func TestImportImportUser(t *testing.T) { } data.NotifyProps = &UserNotifyPropsImportData{ Desktop: ptrStr(model.USER_NOTIFY_MENTION), - DesktopDuration: ptrStr("3"), DesktopSound: ptrStr("false"), Email: ptrStr("false"), Mobile: ptrStr(model.USER_NOTIFY_NONE), @@ -2067,7 +2058,6 @@ func TestImportImportUser(t *testing.T) { } checkNotifyProp(t, user, model.DESKTOP_NOTIFY_PROP, model.USER_NOTIFY_MENTION) - checkNotifyProp(t, user, model.DESKTOP_DURATION_NOTIFY_PROP, "3") checkNotifyProp(t, user, model.DESKTOP_SOUND_NOTIFY_PROP, "false") checkNotifyProp(t, user, model.EMAIL_NOTIFY_PROP, "false") checkNotifyProp(t, user, model.PUSH_NOTIFY_PROP, model.USER_NOTIFY_NONE) diff --git a/config/default.json b/config/default.json index 1c4608c03..2d6265dcc 100644 --- a/config/default.json +++ b/config/default.json @@ -91,6 +91,7 @@ "EnableConfirmNotificationsToChannel": true, "TeammateNameDisplay": "username", "ExperimentalEnableAutomaticReplies": false, + "ExperimentalHideTownSquareinLHS": false, "ExperimentalTownSquareIsReadOnly": false, "ExperimentalPrimaryTeam": "" }, diff --git a/i18n/en.json b/i18n/en.json index 9a39c60ba..37a199582 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -3791,10 +3791,6 @@ "translation": "Invalid Comment Trigger Notify Prop for user." }, { - "id": "app.import.validate_user_import_data.notify_props_desktop_duration_invalid.error", - "translation": "Invalid Desktop Duration Notify Prop value for user." - }, - { "id": "app.import.validate_user_import_data.notify_props_desktop_invalid.error", "translation": "Invalid Desktop Notify Prop value for user." }, diff --git a/model/config.go b/model/config.go index 7c11860d2..deaae6db8 100644 --- a/model/config.go +++ b/model/config.go @@ -1022,6 +1022,7 @@ type TeamSettings struct { EnableConfirmNotificationsToChannel *bool TeammateNameDisplay *string ExperimentalEnableAutomaticReplies *bool + ExperimentalHideTownSquareinLHS *bool ExperimentalTownSquareIsReadOnly *bool ExperimentalPrimaryTeam *string } @@ -1120,6 +1121,10 @@ func (s *TeamSettings) SetDefaults() { s.ExperimentalEnableAutomaticReplies = NewBool(false) } + if s.ExperimentalHideTownSquareinLHS == nil { + s.ExperimentalHideTownSquareinLHS = NewBool(false) + } + if s.ExperimentalTownSquareIsReadOnly == nil { s.ExperimentalTownSquareIsReadOnly = NewBool(false) } diff --git a/model/user.go b/model/user.go index 6fbdb09e8..c5d6c13b6 100644 --- a/model/user.go +++ b/model/user.go @@ -22,7 +22,6 @@ const ( USER_NOTIFY_NONE = "none" DESKTOP_NOTIFY_PROP = "desktop" DESKTOP_SOUND_NOTIFY_PROP = "desktop_sound" - DESKTOP_DURATION_NOTIFY_PROP = "desktop_duration" MARK_UNREAD_NOTIFY_PROP = "mark_unread" PUSH_NOTIFY_PROP = "push" PUSH_STATUS_NOTIFY_PROP = "push_status" diff --git a/utils/config.go b/utils/config.go index 9a606389d..0da1d0abe 100644 --- a/utils/config.go +++ b/utils/config.go @@ -556,6 +556,7 @@ func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.L props["RunJobs"] = strconv.FormatBool(*c.JobSettings.RunJobs) // Set default values for all options that require a license. + props["ExperimentalHideTownSquareinLHS"] = "false" props["ExperimentalTownSquareIsReadOnly"] = "false" props["ExperimentalEnableAuthenticationTransfer"] = "true" props["EnableCustomBrand"] = "false" @@ -611,6 +612,7 @@ func GenerateClientConfig(c *model.Config, diagnosticId string, license *model.L props["PasswordRequireSymbol"] = strconv.FormatBool(*c.PasswordSettings.Symbol) if license != nil { + props["ExperimentalHideTownSquareinLHS"] = strconv.FormatBool(*c.TeamSettings.ExperimentalHideTownSquareinLHS) props["ExperimentalTownSquareIsReadOnly"] = strconv.FormatBool(*c.TeamSettings.ExperimentalTownSquareIsReadOnly) props["ExperimentalEnableAuthenticationTransfer"] = strconv.FormatBool(*c.ServiceSettings.ExperimentalEnableAuthenticationTransfer) |