Fix SystemAdmin use of CreateAt in CreatePost API (#4349) (#4408)

This commit is contained in:
Rachel Willmer
2016-11-17 19:05:53 +00:00
committed by Harrison Healey
parent 6d2882f6e7
commit a25afb1134
2 changed files with 34 additions and 1 deletions

View File

@@ -132,7 +132,9 @@ func CreatePost(c *Context, post *model.Post, triggerWebhooks bool) (*model.Post
}
}
post.CreateAt = 0
if post.CreateAt != 0 && !HasPermissionToContext(c, model.PERMISSION_MANAGE_SYSTEM) {
post.CreateAt = 0
}
post.Hashtags, _ = model.ParseHashtags(post.Message)

View File

@@ -138,6 +138,37 @@ func TestCreatePost(t *testing.T) {
}
}
func TestCreatePostWithCreateAt(t *testing.T) {
// An ordinary user cannot use CreateAt
th := Setup().InitBasic()
Client := th.BasicClient
channel1 := th.BasicChannel
post := &model.Post{
ChannelId: channel1.Id,
Message: "PLT-4349",
CreateAt: 1234,
}
if resp, err := Client.CreatePost(post); err != nil {
t.Fatal(err)
} else if rpost := resp.Data.(*model.Post); rpost.CreateAt == post.CreateAt {
t.Fatal("post should be created with default CreateAt timestamp for ordinary user")
}
// But a System Admin user can
th2 := Setup().InitSystemAdmin()
SysClient := th2.SystemAdminClient
if resp, err := SysClient.CreatePost(post); err != nil {
t.Fatal(err)
} else if rpost := resp.Data.(*model.Post); rpost.CreateAt != post.CreateAt {
t.Fatal("post should be created with provided CreateAt timestamp for System Admin user")
}
}
func testCreatePostWithOutgoingHook(
t *testing.T,
hookContentType string,