github.com/adacta-ru/mattermost-server/v6@v6.0.0/api4/bleve.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package api4 5 6 import ( 7 "net/http" 8 9 "github.com/adacta-ru/mattermost-server/v6/audit" 10 "github.com/adacta-ru/mattermost-server/v6/model" 11 ) 12 13 func (api *API) InitBleve() { 14 api.BaseRoutes.Bleve.Handle("/purge_indexes", api.ApiSessionRequired(purgeBleveIndexes)).Methods("POST") 15 } 16 17 func purgeBleveIndexes(c *Context, w http.ResponseWriter, r *http.Request) { 18 auditRec := c.MakeAuditRecord("purgeBleveIndexes", audit.Fail) 19 defer c.LogAuditRec(auditRec) 20 21 if !c.App.SessionHasPermissionTo(*c.App.Session(), model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL) { 22 c.SetPermissionError(model.PERMISSION_SYSCONSOLE_WRITE_EXPERIMENTAL) 23 return 24 } 25 26 if *c.App.Config().ExperimentalSettings.RestrictSystemAdmin { 27 c.Err = model.NewAppError("purgeBleveIndexes", "api.restricted_system_admin", nil, "", http.StatusForbidden) 28 return 29 } 30 31 if err := c.App.PurgeBleveIndexes(); err != nil { 32 c.Err = err 33 return 34 } 35 36 auditRec.Success() 37 38 ReturnStatusOK(w) 39 }