diff options
Diffstat (limited to 'model/channel_member.go')
-rw-r--r-- | model/channel_member.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/model/channel_member.go b/model/channel_member.go index a607a5059..5de58bc4f 100644 --- a/model/channel_member.go +++ b/model/channel_member.go @@ -88,18 +88,32 @@ func (o *ChannelMember) IsValid() *AppError { return NewLocAppError("ChannelMember.IsValid", "model.channel_member.is_valid.user_id.app_error", nil, "") } - notifyLevel := o.NotifyProps["desktop"] + notifyLevel := o.NotifyProps[DESKTOP_NOTIFY_PROP] if len(notifyLevel) > 20 || !IsChannelNotifyLevelValid(notifyLevel) { return NewLocAppError("ChannelMember.IsValid", "model.channel_member.is_valid.notify_level.app_error", nil, "notify_level="+notifyLevel) } - markUnreadLevel := o.NotifyProps["mark_unread"] + markUnreadLevel := o.NotifyProps[MARK_UNREAD_NOTIFY_PROP] if len(markUnreadLevel) > 20 || !IsChannelMarkUnreadLevelValid(markUnreadLevel) { return NewLocAppError("ChannelMember.IsValid", "model.channel_member.is_valid.unread_level.app_error", nil, "mark_unread_level="+markUnreadLevel) } + if pushLevel, ok := o.NotifyProps[PUSH_NOTIFY_PROP]; ok { + if len(pushLevel) > 20 || !IsChannelNotifyLevelValid(pushLevel) { + return NewLocAppError("ChannelMember.IsValid", "model.channel_member.is_valid.push_level.app_error", + nil, "push_notification_level="+pushLevel) + } + } + + if sendEmail, ok := o.NotifyProps[EMAIL_NOTIFY_PROP]; ok { + if len(sendEmail) > 20 || !IsSendEmailValid(sendEmail) { + return NewLocAppError("ChannelMember.IsValid", "model.channel_member.is_valid.email_value.app_error", + nil, "push_notification_level="+sendEmail) + } + } + return nil } @@ -126,9 +140,15 @@ func IsChannelMarkUnreadLevelValid(markUnreadLevel string) bool { return markUnreadLevel == CHANNEL_MARK_UNREAD_ALL || markUnreadLevel == CHANNEL_MARK_UNREAD_MENTION } +func IsSendEmailValid(sendEmail string) bool { + return sendEmail == CHANNEL_NOTIFY_DEFAULT || sendEmail == "true" || sendEmail == "false" +} + func GetDefaultChannelNotifyProps() StringMap { return StringMap{ - "desktop": CHANNEL_NOTIFY_DEFAULT, - "mark_unread": CHANNEL_MARK_UNREAD_ALL, + DESKTOP_NOTIFY_PROP: CHANNEL_NOTIFY_DEFAULT, + MARK_UNREAD_NOTIFY_PROP: CHANNEL_MARK_UNREAD_ALL, + PUSH_NOTIFY_PROP: CHANNEL_NOTIFY_DEFAULT, + EMAIL_NOTIFY_PROP: CHANNEL_NOTIFY_DEFAULT, } } |