diff --git a/api4/api.go b/api4/api.go index f16fe859c3..5acd00f3da 100644 --- a/api4/api.go +++ b/api4/api.go @@ -316,6 +316,7 @@ func InitLocal(configservice configservice.ConfigService, globalOptionsFunc app. api.InitLicenseLocal() api.InitBotLocal() api.InitGroupLocal() + api.InitSystemLocal() api.InitPostLocal() root.Handle("/api/v4/{anything:.*}", http.HandlerFunc(api.Handle404)) diff --git a/api4/system_local.go b/api4/system_local.go new file mode 100644 index 0000000000..907ec416a8 --- /dev/null +++ b/api4/system_local.go @@ -0,0 +1,8 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +package api4 + +func (api *API) InitSystemLocal() { + api.BaseRoutes.ApiRoot.Handle("/logs", api.ApiLocal(getLogs)).Methods("GET") +} diff --git a/api4/system_test.go b/api4/system_test.go index 6c4620c254..0fbf5b540b 100644 --- a/api4/system_test.go +++ b/api4/system_test.go @@ -240,33 +240,34 @@ func TestInvalidateCaches(t *testing.T) { func TestGetLogs(t *testing.T) { th := Setup(t).InitBasic() defer th.TearDown() - Client := th.Client for i := 0; i < 20; i++ { mlog.Info(strconv.Itoa(i)) } - logs, resp := th.SystemAdminClient.GetLogs(0, 10) - CheckNoError(t, resp) - require.Len(t, logs, 10) + th.TestForSystemAdminAndLocal(t, func(t *testing.T, c *model.Client4) { + logs, resp := c.GetLogs(0, 10) + CheckNoError(t, resp) + require.Len(t, logs, 10) - for i := 10; i < 20; i++ { - assert.Containsf(t, logs[i-10], fmt.Sprintf(`"msg":"%d"`, i), "Log line doesn't contain correct message") - } + for i := 10; i < 20; i++ { + assert.Containsf(t, logs[i-10], fmt.Sprintf(`"msg":"%d"`, i), "Log line doesn't contain correct message") + } - logs, resp = th.SystemAdminClient.GetLogs(1, 10) - CheckNoError(t, resp) - require.Len(t, logs, 10) + logs, resp = c.GetLogs(1, 10) + CheckNoError(t, resp) + require.Len(t, logs, 10) - logs, resp = th.SystemAdminClient.GetLogs(-1, -1) - CheckNoError(t, resp) - require.NotEmpty(t, logs, "should not be empty") + logs, resp = c.GetLogs(-1, -1) + CheckNoError(t, resp) + require.NotEmpty(t, logs, "should not be empty") + }) - _, resp = Client.GetLogs(0, 10) + _, resp := th.Client.GetLogs(0, 10) CheckForbiddenStatus(t, resp) - Client.Logout() - _, resp = Client.GetLogs(0, 10) + th.Client.Logout() + _, resp = th.Client.GetLogs(0, 10) CheckUnauthorizedStatus(t, resp) }