Make plugin IDs case insensitive (#9117)

Этот коммит содержится в:
Joram Wilander
2018-07-16 16:56:55 -04:00
коммит произвёл GitHub
родитель 275731578e
Коммит f2c1803905
4 изменённых файлов: 15 добавлений и 0 удалений

Просмотреть файл

@@ -114,6 +114,10 @@ func TestPlugin(t *testing.T) {
CheckBadRequestStatus(t, resp)
assert.False(t, ok)
ok, resp = th.SystemAdminClient.EnablePlugin("JUNK")
CheckBadRequestStatus(t, resp)
assert.False(t, ok)
// Successful deactivate
ok, resp = th.SystemAdminClient.DisablePlugin(manifest.Id)
CheckNoError(t, resp)

Просмотреть файл

@@ -6,6 +6,7 @@ package app
import (
"net/http"
"os"
"strings"
"github.com/mattermost/mattermost-server/mlog"
"github.com/mattermost/mattermost-server/model"
@@ -154,6 +155,8 @@ func (a *App) EnablePlugin(id string) *model.AppError {
return model.NewAppError("EnablePlugin", "app.plugin.config.app_error", nil, err.Error(), http.StatusInternalServerError)
}
id = strings.ToLower(id)
var manifest *model.Manifest
for _, p := range plugins {
if p.Manifest.Id == id {
@@ -198,6 +201,8 @@ func (a *App) DisablePlugin(id string) *model.AppError {
return model.NewAppError("DisablePlugin", "app.plugin.config.app_error", nil, err.Error(), http.StatusInternalServerError)
}
id = strings.ToLower(id)
var manifest *model.Manifest
for _, p := range plugins {
if p.Manifest.Id == id {

Просмотреть файл

@@ -9,6 +9,7 @@ import (
"io/ioutil"
"os"
"path/filepath"
"strings"
"gopkg.in/yaml.v2"
)
@@ -201,6 +202,7 @@ func FindManifest(dir string) (manifest *Manifest, path string, err error) {
return
}
manifest = &parsed
manifest.Id = strings.ToLower(manifest.Id)
return
}
@@ -220,5 +222,6 @@ func FindManifest(dir string) (manifest *Manifest, path string, err error) {
return
}
manifest = &parsed
manifest.Id = strings.ToLower(manifest.Id)
return
}

Просмотреть файл

@@ -27,9 +27,11 @@ func TestFindManifest(t *testing.T) {
{"foo", "bar", true, true},
{"plugin.json", "bar", true, false},
{"plugin.json", `{"id": "foo"}`, false, false},
{"plugin.json", `{"id": "FOO"}`, false, false},
{"plugin.yaml", `id: foo`, false, false},
{"plugin.yaml", "bar", true, false},
{"plugin.yml", `id: foo`, false, false},
{"plugin.yml", `id: FOO`, false, false},
{"plugin.yml", "bar", true, false},
} {
dir, err := ioutil.TempDir("", "mm-plugin-test")
@@ -54,6 +56,7 @@ func TestFindManifest(t *testing.T) {
if !tc.ExpectError {
require.NotNil(t, m, tc.Filename)
assert.NotEmpty(t, m.Id, tc.Filename)
assert.Equal(t, strings.ToLower(m.Id), m.Id)
}
}
}