From d6537deb3ddace25b693932ae503b4fbdbe02935 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 2 May 2018 10:50:56 -0400 Subject: Add inactive user count to analytics and fix client analytics function (#8695) --- api4/system_test.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'api4') diff --git a/api4/system_test.go b/api4/system_test.go index c0fde6c39..d4134f8e2 100644 --- a/api4/system_test.go +++ b/api4/system_test.go @@ -512,15 +512,18 @@ func TestGetAnalyticsOld(t *testing.T) { CheckNoError(t, resp) found := false + found2 := false for _, row := range rows { if row.Name == "unique_user_count" { found = true + } else if row.Name == "inactive_user_count" { + found2 = true + assert.True(t, row.Value >= 0) } } - if !found { - t.Fatal("should return unique user count") - } + assert.True(t, found, "should return unique user count") + assert.True(t, found2, "should return inactive user count") _, resp = th.SystemAdminClient.GetAnalyticsOld("post_counts_day", "") CheckNoError(t, resp) @@ -531,9 +534,15 @@ func TestGetAnalyticsOld(t *testing.T) { _, resp = th.SystemAdminClient.GetAnalyticsOld("extra_counts", "") CheckNoError(t, resp) - _, resp = th.SystemAdminClient.GetAnalyticsOld("", th.BasicTeam.Id) + rows, resp = th.SystemAdminClient.GetAnalyticsOld("", th.BasicTeam.Id) CheckNoError(t, resp) + for _, row := range rows { + if row.Name == "inactive_user_count" { + assert.Equal(t, float64(-1), row.Value, "inactive user count should be -1 when team specified") + } + } + rows2, resp2 := th.SystemAdminClient.GetAnalyticsOld("standard", "") CheckNoError(t, resp2) assert.Equal(t, "total_websocket_connections", rows2[5].Name) -- cgit v1.2.3-1-g7c22 From 30fd4a2951906a59137312d6d1dea2e54fe9c8e9 Mon Sep 17 00:00:00 2001 From: Saturnino Abril Date: Sat, 5 May 2018 02:16:00 +0800 Subject: update permission of converting a channel from public to private to allow team admin (#8723) --- api4/channel.go | 8 +++----- api4/channel_test.go | 12 ++++++++---- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'api4') diff --git a/api4/channel.go b/api4/channel.go index 83fa8eb18..1026a41ad 100644 --- a/api4/channel.go +++ b/api4/channel.go @@ -153,15 +153,13 @@ func convertChannelToPrivate(c *Context, w http.ResponseWriter, r *http.Request) return } - if !c.App.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) { - c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) - return - } - oldPublicChannel, err := c.App.GetChannel(c.Params.ChannelId) if err != nil { c.Err = err return + } else if !c.App.SessionHasPermissionToTeam(c.Session, oldPublicChannel.TeamId, model.PERMISSION_MANAGE_TEAM) { + c.SetPermissionError(model.PERMISSION_MANAGE_TEAM) + return } else if oldPublicChannel.Type == model.CHANNEL_PRIVATE { c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.private_channel_error", nil, "", http.StatusBadRequest) return diff --git a/api4/channel_test.go b/api4/channel_test.go index 767fdbdb8..b428a382a 100644 --- a/api4/channel_test.go +++ b/api4/channel_test.go @@ -915,10 +915,13 @@ func TestConvertChannelToPrivate(t *testing.T) { CheckForbiddenStatus(t, resp) th.LoginTeamAdmin() - _, resp = Client.ConvertChannelToPrivate(publicChannel.Id) - CheckForbiddenStatus(t, resp) + rchannel, resp := Client.ConvertChannelToPrivate(publicChannel.Id) + CheckOKStatus(t, resp) + if rchannel.Type != model.CHANNEL_PRIVATE { + t.Fatal("channel should be converted from public to private") + } - rchannel, resp := th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id) + rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id) CheckBadRequestStatus(t, resp) if rchannel != nil { t.Fatal("should not return a channel") @@ -930,7 +933,8 @@ func TestConvertChannelToPrivate(t *testing.T) { t.Fatal("should not return a channel") } - rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel.Id) + publicChannel2 := th.CreatePublicChannel() + rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel2.Id) CheckOKStatus(t, resp) if rchannel.Type != model.CHANNEL_PRIVATE { t.Fatal("channel should be converted from public to private") -- cgit v1.2.3-1-g7c22