summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/post.go13
-rw-r--r--model/post_test.go43
2 files changed, 56 insertions, 0 deletions
diff --git a/model/post.go b/model/post.go
index 523a97c73..a5ae0b82a 100644
--- a/model/post.go
+++ b/model/post.go
@@ -33,6 +33,7 @@ const (
POST_MESSAGE_MAX_RUNES = 4000
POST_PROPS_MAX_RUNES = 8000
POST_CUSTOM_TYPE_PREFIX = "custom_"
+ PROPS_ADD_CHANNEL_MEMBER = "add_channel_member"
)
type Post struct {
@@ -188,6 +189,18 @@ func (o *Post) IsValid() *AppError {
return nil
}
+func (o *Post) SanitizeProps() {
+ membersToSanitize := []string{
+ PROPS_ADD_CHANNEL_MEMBER,
+ }
+
+ for _, member := range membersToSanitize {
+ if _, ok := o.Props[member]; ok {
+ delete(o.Props, member)
+ }
+ }
+}
+
func (o *Post) PreSave() {
if o.Id == "" {
o.Id = NewId()
diff --git a/model/post_test.go b/model/post_test.go
index ced84f26b..846c8c775 100644
--- a/model/post_test.go
+++ b/model/post_test.go
@@ -123,3 +123,46 @@ func TestPostIsSystemMessage(t *testing.T) {
t.Fatalf("TestPostIsSystemMessage failed, expected post2.IsSystemMessage() to be true")
}
}
+
+func TestPostSanitizeProps(t *testing.T) {
+ post1 := &Post{
+ Message: "test",
+ }
+
+ post1.SanitizeProps()
+
+ if post1.Props[PROPS_ADD_CHANNEL_MEMBER] != nil {
+ t.Fatal("should be nil")
+ }
+
+ post2 := &Post{
+ Message: "test",
+ Props: StringInterface{
+ PROPS_ADD_CHANNEL_MEMBER: "test",
+ },
+ }
+
+ post2.SanitizeProps()
+
+ if post2.Props[PROPS_ADD_CHANNEL_MEMBER] != nil {
+ t.Fatal("should be nil")
+ }
+
+ post3 := &Post{
+ Message: "test",
+ Props: StringInterface{
+ PROPS_ADD_CHANNEL_MEMBER: "no good",
+ "attachments": "good",
+ },
+ }
+
+ post3.SanitizeProps()
+
+ if post3.Props[PROPS_ADD_CHANNEL_MEMBER] != nil {
+ t.Fatal("should be nil")
+ }
+
+ if post3.Props["attachments"] == nil {
+ t.Fatal("should not be nil")
+ }
+}