summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-07-04 16:12:02 -0400
committerGitHub <noreply@github.com>2017-07-04 16:12:02 -0400
commit8ec8948c84e946fde736add0c4e6dd55f6efd1ab (patch)
treeb6388c965c797d4dfe9c860b93b4249107b9a7b0 /api
parent4bd7b68b24137a9f8fe0abc908831cf95bb6c32b (diff)
downloadchat-8ec8948c84e946fde736add0c4e6dd55f6efd1ab.tar.gz
chat-8ec8948c84e946fde736add0c4e6dd55f6efd1ab.tar.bz2
chat-8ec8948c84e946fde736add0c4e6dd55f6efd1ab.zip
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
Diffstat (limited to 'api')
-rw-r--r--api/admin_test.go22
-rw-r--r--api/api.go5
-rw-r--r--api/context.go4
3 files changed, 31 insertions, 0 deletions
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()
}