summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/export.go23
-rw-r--r--app/export_test.go31
2 files changed, 53 insertions, 1 deletions
diff --git a/app/export.go b/app/export.go
index b911954a5..7c1736157 100644
--- a/app/export.go
+++ b/app/export.go
@@ -150,6 +150,8 @@ func (a *App) ExportAllUsers(writer io.Writer) *model.AppError {
userLine := ImportLineFromUser(user)
+ userLine.User.NotifyProps = a.buildUserNotifyProps(user.NotifyProps)
+
// Do the Team Memberships.
members, err := a.buildUserTeamAndChannelMemberships(user.Id)
if err != nil {
@@ -218,6 +220,27 @@ func (a *App) buildUserChannelMemberships(userId string, teamId string) (*[]User
return &memberships, nil
}
+func (a *App) buildUserNotifyProps(notifyProps model.StringMap) *UserNotifyPropsImportData {
+
+ getProp := func(key string) *string {
+ if v, ok := notifyProps[key]; ok {
+ return &v
+ }
+ return nil
+ }
+
+ return &UserNotifyPropsImportData{
+ Desktop: getProp(model.DESKTOP_NOTIFY_PROP),
+ DesktopSound: getProp(model.DESKTOP_SOUND_NOTIFY_PROP),
+ Email: getProp(model.EMAIL_NOTIFY_PROP),
+ Mobile: getProp(model.MOBILE_NOTIFY_PROP),
+ MobilePushStatus: getProp(model.MOBILE_PUSH_STATUS_NOTIFY_PROP),
+ ChannelTrigger: getProp(model.CHANNEL_MENTIONS_NOTIFY_PROP),
+ CommentsTrigger: getProp(model.COMMENTS_NOTIFY_PROP),
+ MentionKeys: getProp(model.MENTION_KEYS_NOTIFY_PROP),
+ }
+}
+
func (a *App) ExportAllPosts(writer io.Writer) *model.AppError {
afterId := strings.Repeat("0", 26)
for {
diff --git a/app/export_test.go b/app/export_test.go
index 05b81387a..bb6d53392 100644
--- a/app/export_test.go
+++ b/app/export_test.go
@@ -1,10 +1,11 @@
package app
import (
- "github.com/stretchr/testify/assert"
"testing"
"github.com/mattermost/mattermost-server/model"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
func TestReactionsOfPost(t *testing.T) {
@@ -30,3 +31,31 @@ func TestReactionsOfPost(t *testing.T) {
assert.Equal(t, reactionObject.EmojiName, *(*reactionsOfPost)[0].EmojiName)
}
+
+func TestExportUserNotifyProps(t *testing.T) {
+
+ th := Setup().InitBasic()
+ defer th.TearDown()
+
+ userNotifyProps := model.StringMap{
+ model.DESKTOP_NOTIFY_PROP: model.USER_NOTIFY_ALL,
+ model.DESKTOP_SOUND_NOTIFY_PROP: "true",
+ model.EMAIL_NOTIFY_PROP: "true",
+ model.MOBILE_NOTIFY_PROP: model.USER_NOTIFY_ALL,
+ model.MOBILE_PUSH_STATUS_NOTIFY_PROP: model.STATUS_ONLINE,
+ model.CHANNEL_MENTIONS_NOTIFY_PROP: "true",
+ model.COMMENTS_NOTIFY_PROP: model.COMMENTS_NOTIFY_ROOT,
+ model.MENTION_KEYS_NOTIFY_PROP: "valid,misc",
+ }
+
+ exportNotifyProps := th.App.buildUserNotifyProps(userNotifyProps)
+
+ require.Equal(t, userNotifyProps[model.DESKTOP_NOTIFY_PROP], *exportNotifyProps.Desktop)
+ require.Equal(t, userNotifyProps[model.DESKTOP_SOUND_NOTIFY_PROP], *exportNotifyProps.DesktopSound)
+ require.Equal(t, userNotifyProps[model.EMAIL_NOTIFY_PROP], *exportNotifyProps.Email)
+ require.Equal(t, userNotifyProps[model.MOBILE_NOTIFY_PROP], *exportNotifyProps.Mobile)
+ require.Equal(t, userNotifyProps[model.MOBILE_PUSH_STATUS_NOTIFY_PROP], *exportNotifyProps.MobilePushStatus)
+ require.Equal(t, userNotifyProps[model.CHANNEL_MENTIONS_NOTIFY_PROP], *exportNotifyProps.ChannelTrigger)
+ require.Equal(t, userNotifyProps[model.COMMENTS_NOTIFY_PROP], *exportNotifyProps.CommentsTrigger)
+ require.Equal(t, userNotifyProps[model.MENTION_KEYS_NOTIFY_PROP], *exportNotifyProps.MentionKeys)
+}