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)