From 4ef44a3ba16910f344f79fda6ac0f4760cdb0408 Mon Sep 17 00:00:00 2001 From: Farhan Munshi <3207297+fmunshi@users.noreply.github.com> Date: Thu, 24 Sep 2020 11:26:00 -0400 Subject: [PATCH] MM-28537 System role with write experimental should be able to purge indexes (#15557) --- api4/bleve.go | 4 ++-- api4/bleve_test.go | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/api4/bleve.go b/api4/bleve.go index fd2843c172..1171442d21 100644 --- a/api4/bleve.go +++ b/api4/bleve.go @@ -18,8 +18,8 @@ func purgeBleveIndexes(c *Context, w http.ResponseWriter, r *http.Request) { auditRec := c.MakeAuditRecord("purgeBleveIndexes", audit.Fail) defer c.LogAuditRec(auditRec) - if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_MANAGE_SYSTEM) { - c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM) + if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL) { + c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL) return } diff --git a/api4/bleve_test.go b/api4/bleve_test.go index f5664680b4..481908f7e8 100644 --- a/api4/bleve_test.go +++ b/api4/bleve_test.go @@ -18,6 +18,13 @@ func TestBlevePurgeIndexes(t *testing.T) { CheckForbiddenStatus(t, resp) }) + t.Run("as system user with write experimental permission", func(t *testing.T) { + th.AddPermissionToRole(model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL.Id, model.SYSTEM_USER_ROLE_ID) + defer th.RemovePermissionFromRole(model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL.Id, model.SYSTEM_USER_ROLE_ID) + _, resp := th.Client.PurgeBleveIndexes() + CheckOKStatus(t, resp) + }) + t.Run("as system admin", func(t *testing.T) { _, resp := th.SystemAdminClient.PurgeBleveIndexes() CheckOKStatus(t, resp)