From 8ec8948c84e946fde736add0c4e6dd55f6efd1ab Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Tue, 4 Jul 2017 16:12:02 -0400 Subject: PLT-6554 Add config setting to control enabling API version 3 (#6835) * Add config setting to control enabling API version 3 * Update help text for APIv3 config setting (#6843) * Update configuration_settings.jsx * Update en.json --- api/admin_test.go | 22 ++++++++++++++++++++++ api/api.go | 5 +++++ api/context.go | 4 ++++ 3 files changed, 31 insertions(+) (limited to 'api') diff --git a/api/admin_test.go b/api/admin_test.go index a93257626..d5f24b715 100644 --- a/api/admin_test.go +++ b/api/admin_test.go @@ -4,6 +4,7 @@ package api import ( + "net/http" "strings" "testing" @@ -652,3 +653,24 @@ func TestGetRecentlyActiveUsers(t *testing.T) { t.Fatal("should have been at least 2") } } + +func TestDisableAPIv3(t *testing.T) { + th := Setup().InitBasic() + Client := th.BasicClient + + enableAPIv3 := *utils.Cfg.ServiceSettings.EnableAPIv3 + defer func() { + *utils.Cfg.ServiceSettings.EnableAPIv3 = enableAPIv3 + }() + *utils.Cfg.ServiceSettings.EnableAPIv3 = false + + _, err := Client.GetUser(th.BasicUser.Id, "") + + if err.StatusCode != http.StatusNotImplemented { + t.Fatal("wrong error code") + } + + if err.Id != "api.context.v3_disabled.app_error" { + t.Fatal("wrong error message") + } +} diff --git a/api/api.go b/api/api.go index c9c876b02..7e902c159 100644 --- a/api/api.go +++ b/api/api.go @@ -6,6 +6,7 @@ package api import ( "net/http" + l4g "github.com/alecthomas/log4go" "github.com/gorilla/mux" "github.com/mattermost/platform/app" "github.com/mattermost/platform/einterfaces" @@ -115,6 +116,10 @@ func InitApi() { utils.InitHTML() app.InitEmailBatching() + + if *utils.Cfg.ServiceSettings.EnableAPIv3 { + l4g.Info("API version 3 is scheduled for deprecation. Please see https://api.mattermost.com for details.") + } } func HandleEtag(etag string, routeName string, w http.ResponseWriter, r *http.Request) bool { diff --git a/api/context.go b/api/context.go index 6d1e758e8..09cb1e583 100644 --- a/api/context.go +++ b/api/context.go @@ -205,6 +205,10 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { c.Path = "/" + strings.Join(splitURL[2:], "/") } + if h.isApi && !*utils.Cfg.ServiceSettings.EnableAPIv3 { + c.Err = model.NewAppError("ServeHTTP", "api.context.v3_disabled.app_error", nil, "", http.StatusNotImplemented) + } + if c.Err == nil && h.requireUser { c.UserRequired() } -- cgit v1.2.3-1-g7c22