summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
authorcpanato <ctadeu@gmail.com>2018-07-06 10:57:40 +0200
committercpanato <ctadeu@gmail.com>2018-07-06 10:57:40 +0200
commita92f5addccad0f77079308ff853a8251db5f2d09 (patch)
treef4aefb58970b38a5b561551ccd3d4cd430dbdce7 /api4
parent4de50ddfc3ef09ddc0a56c8ff9bf2429df524aa5 (diff)
parent0896b5c64ef224f0f8835b9727d1c1b94cbe7c29 (diff)
downloadchat-a92f5addccad0f77079308ff853a8251db5f2d09.tar.gz
chat-a92f5addccad0f77079308ff853a8251db5f2d09.tar.bz2
chat-a92f5addccad0f77079308ff853a8251db5f2d09.zip
Merge remote-tracking branch 'upstream/release-5.1' into release-5.1-daily-merge-20180706
Diffstat (limited to 'api4')
-rw-r--r--api4/channel.go5
-rw-r--r--api4/channel_test.go38
2 files changed, 43 insertions, 0 deletions
diff --git a/api4/channel.go b/api4/channel.go
index cb9112677..1afadf39b 100644
--- a/api4/channel.go
+++ b/api4/channel.go
@@ -638,6 +638,11 @@ func deleteChannel(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
+ if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP {
+ c.Err = model.NewAppError("deleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest)
+ return
+ }
+
if channel.Type == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(c.Session, channel.Id, model.PERMISSION_DELETE_PUBLIC_CHANNEL) {
c.SetPermissionError(model.PERMISSION_DELETE_PUBLIC_CHANNEL)
return
diff --git a/api4/channel_test.go b/api4/channel_test.go
index d66c2a640..ab751f151 100644
--- a/api4/channel_test.go
+++ b/api4/channel_test.go
@@ -16,6 +16,7 @@ import (
"github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/utils"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
func TestCreateChannel(t *testing.T) {
@@ -320,6 +321,23 @@ func TestCreateDirectChannel(t *testing.T) {
CheckNoError(t, resp)
}
+func TestDeleteDirectChannel(t *testing.T) {
+ th := Setup().InitBasic().InitSystemAdmin()
+ defer th.TearDown()
+ Client := th.Client
+ user := th.BasicUser
+ user2 := th.BasicUser2
+
+ rgc, resp := Client.CreateDirectChannel(user.Id, user2.Id)
+ CheckNoError(t, resp)
+ CheckCreatedStatus(t, resp)
+ require.NotNil(t, rgc, "should have created a direct channel")
+
+ deleted, resp := Client.DeleteChannel(rgc.Id)
+ CheckErrorMessage(t, resp, "api.channel.delete_channel.type.invalid")
+ require.False(t, deleted, "should not have been able to delete direct channel.")
+}
+
func TestCreateGroupChannel(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer th.TearDown()
@@ -392,6 +410,26 @@ func TestCreateGroupChannel(t *testing.T) {
CheckNoError(t, resp)
}
+func TestDeleteGroupChannel(t *testing.T) {
+ th := Setup().InitBasic().InitSystemAdmin()
+ defer th.TearDown()
+ Client := th.Client
+ user := th.BasicUser
+ user2 := th.BasicUser2
+ user3 := th.CreateUser()
+
+ userIds := []string{user.Id, user2.Id, user3.Id}
+
+ rgc, resp := Client.CreateGroupChannel(userIds)
+ CheckNoError(t, resp)
+ CheckCreatedStatus(t, resp)
+ require.NotNil(t, rgc, "should have created a group channel")
+
+ deleted, resp := Client.DeleteChannel(rgc.Id)
+ CheckErrorMessage(t, resp, "api.channel.delete_channel.type.invalid")
+ require.False(t, deleted, "should not have been able to delete group channel.")
+}
+
func TestGetChannel(t *testing.T) {
th := Setup().InitBasic().InitSystemAdmin()
defer th.TearDown()