MM-14441: restrict system admin config (#10477)

* tweak utils.Merge docs

* move merge_test to utils_test package for easier testing

* utils: support MergeConfig and StructFieldFilter

* constrain updating certain fields by the restricted system admin
Этот коммит содержится в:
Jesse Hallam
2019-03-21 15:46:38 -04:00
коммит произвёл GitHub
родитель 3d92af2737
Коммит 8c8b1bbc9c
10 изменённых файлов: 316 добавлений и 220 удалений

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

@@ -1,10 +1,11 @@
package config_test
import (
"testing"
"github.com/mattermost/mattermost-server/config"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"testing"
"github.com/mattermost/mattermost-server/model"
)
@@ -85,7 +86,7 @@ func TestMergeConfigs(t *testing.T) {
patch, err := config.NewMemoryStore()
require.NoError(t, err)
merged, err := base.MergeConfig(patch.Get())
merged, err := config.Merge(base.Get(), patch.Get(), nil)
require.NoError(t, err)
assert.Equal(t, patch.Get(), merged)
@@ -95,7 +96,7 @@ func TestMergeConfigs(t *testing.T) {
require.NoError(t, err)
patch := base.Get().Clone()
merged, err := base.MergeConfig(patch)
merged, err := config.Merge(base.Get(), patch, nil)
require.NoError(t, err)
assert.Equal(t, base.Get(), merged)
@@ -107,7 +108,7 @@ func TestMergeConfigs(t *testing.T) {
patch := base.Get().Clone()
patch.ServiceSettings.SiteURL = newString("http://newhost.ca")
merged, err := base.MergeConfig(patch)
merged, err := config.Merge(base.Get(), patch, nil)
require.NoError(t, err)
assert.NotEqual(t, base.Get(), merged)
@@ -124,7 +125,7 @@ func TestMergeConfigs(t *testing.T) {
expected.ServiceSettings.SiteURL = newString("http://newhost.ca")
expected.GoogleSettings.Enable = newBool(true)
merged, err := base.MergeConfig(patch)
merged, err := config.Merge(base.Get(), patch, nil)
require.NoError(t, err)
assert.NotEqual(t, base.Get(), merged)