summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Kraft <martinkraft@gmail.com>2018-05-25 11:25:40 -0400
committerMartin Kraft <martinkraft@gmail.com>2018-05-25 11:25:40 -0400
commitbaf697e348e329ad6b5c5bba1db8e0a53fcb8a13 (patch)
tree88acbcb69382817eb07f8c331beb195d014cdfa4
parenta51b2367a34d5cbefe720232b35ccf0d1aa63c98 (diff)
parent58abb4204e2e5d7c82312ed18a3d4d1a3a5f1962 (diff)
downloadchat-baf697e348e329ad6b5c5bba1db8e0a53fcb8a13.tar.gz
chat-baf697e348e329ad6b5c5bba1db8e0a53fcb8a13.tar.bz2
chat-baf697e348e329ad6b5c5bba1db8e0a53fcb8a13.zip
Merge remote-tracking branch 'origin/master' into advanced-permissions-phase-2
-rw-r--r--app/diagnostics.go53
-rw-r--r--app/import.go16
-rw-r--r--app/import_test.go10
-rw-r--r--config/default.json1
-rw-r--r--i18n/en.json4
-rw-r--r--model/config.go5
-rw-r--r--model/user.go1
-rw-r--r--utils/config.go2
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)