[MM-21115] Add permissions check on user_typing event (#13373)
* Add permissions check on user_typing event * Fix test
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
637d9e0ea6
Коммит
acb19f640b
@@ -39,6 +39,7 @@ type TestHelper struct {
|
|||||||
BasicTeam *model.Team
|
BasicTeam *model.Team
|
||||||
BasicChannel *model.Channel
|
BasicChannel *model.Channel
|
||||||
BasicPrivateChannel *model.Channel
|
BasicPrivateChannel *model.Channel
|
||||||
|
BasicPrivateChannel2 *model.Channel
|
||||||
BasicDeletedChannel *model.Channel
|
BasicDeletedChannel *model.Channel
|
||||||
BasicChannel2 *model.Channel
|
BasicChannel2 *model.Channel
|
||||||
BasicPost *model.Post
|
BasicPost *model.Post
|
||||||
@@ -193,6 +194,7 @@ func (me *TestHelper) InitBasic() *TestHelper {
|
|||||||
me.BasicTeam = me.CreateTeam()
|
me.BasicTeam = me.CreateTeam()
|
||||||
me.BasicChannel = me.CreatePublicChannel()
|
me.BasicChannel = me.CreatePublicChannel()
|
||||||
me.BasicPrivateChannel = me.CreatePrivateChannel()
|
me.BasicPrivateChannel = me.CreatePrivateChannel()
|
||||||
|
me.BasicPrivateChannel2 = me.CreatePrivateChannel()
|
||||||
me.BasicDeletedChannel = me.CreatePublicChannel()
|
me.BasicDeletedChannel = me.CreatePublicChannel()
|
||||||
me.BasicChannel2 = me.CreatePublicChannel()
|
me.BasicChannel2 = me.CreatePublicChannel()
|
||||||
me.BasicPost = me.CreatePost()
|
me.BasicPost = me.CreatePost()
|
||||||
|
|||||||
@@ -850,7 +850,7 @@ func TestGetAllChannelsWithCount(t *testing.T) {
|
|||||||
for _, c := range *channels {
|
for _, c := range *channels {
|
||||||
require.NotEqual(t, c.TeamId, "")
|
require.NotEqual(t, c.TeamId, "")
|
||||||
}
|
}
|
||||||
require.Equal(t, int64(5), total)
|
require.Equal(t, int64(6), total)
|
||||||
|
|
||||||
channels, _, resp = th.SystemAdminClient.GetAllChannelsWithCount(0, 10, "")
|
channels, _, resp = th.SystemAdminClient.GetAllChannelsWithCount(0, 10, "")
|
||||||
CheckNoError(t, resp)
|
CheckNoError(t, resp)
|
||||||
|
|||||||
@@ -64,6 +64,17 @@ func TestWebSocket(t *testing.T) {
|
|||||||
resp = <-WebSocketClient.ResponseChannel
|
resp = <-WebSocketClient.ResponseChannel
|
||||||
require.Equal(t, resp.Error.Id, "api.websocket_handler.invalid_param.app_error", "should have been invalid param response")
|
require.Equal(t, resp.Error.Id, "api.websocket_handler.invalid_param.app_error", "should have been invalid param response")
|
||||||
require.Equal(t, resp.Error.DetailedError, "", "detailed error not cleared")
|
require.Equal(t, resp.Error.DetailedError, "", "detailed error not cleared")
|
||||||
|
|
||||||
|
WebSocketClient.UserTyping(th.BasicChannel.Id, "")
|
||||||
|
time.Sleep(300 * time.Millisecond)
|
||||||
|
resp = <-WebSocketClient.ResponseChannel
|
||||||
|
require.Nil(t, resp.Error)
|
||||||
|
|
||||||
|
WebSocketClient.UserTyping(th.BasicPrivateChannel2.Id, "")
|
||||||
|
time.Sleep(300 * time.Millisecond)
|
||||||
|
resp = <-WebSocketClient.ResponseChannel
|
||||||
|
require.Equal(t, resp.Error.Id, "api.websocket_handler.invalid_param.app_error", "should have been invalid param response")
|
||||||
|
require.Equal(t, resp.Error.DetailedError, "", "detailed error not cleared")
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWebSocketTrailingSlash(t *testing.T) {
|
func TestWebSocketTrailingSlash(t *testing.T) {
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ func (api *API) userTyping(req *model.WebSocketRequest) (map[string]interface{},
|
|||||||
return nil, NewInvalidWebSocketParamError(req.Action, "channel_id")
|
return nil, NewInvalidWebSocketParamError(req.Action, "channel_id")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !api.App.SessionHasPermissionToChannel(req.Session, channelId, model.PERMISSION_CREATE_POST) {
|
||||||
|
return nil, NewInvalidWebSocketParamError(req.Action, "channel_id")
|
||||||
|
}
|
||||||
|
|
||||||
var parentId string
|
var parentId string
|
||||||
if parentId, ok = req.Data["parent_id"].(string); !ok {
|
if parentId, ok = req.Data["parent_id"].(string); !ok {
|
||||||
parentId = ""
|
parentId = ""
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user