[MM-19711] - Get plugin configuration without removing secrets (#11928)

* Method GetUnsanitizedConfig() exposed to API (Plugin) interface and his implementations

* improvements with some suggestions

* Fix documentation (final period added)

Co-Authored-By: Ali Farooq <25732808+ali-farooq0@users.noreply.github.com>

* Added some test for Plugin.GetConfig and Plugin.GetUnsanitizedConfig

* Removed empty lines
Этот коммит содержится в:
Rodrigo Villablanca Vásquez
2019-09-03 18:41:52 -04:00
коммит произвёл Ali Farooq
родитель 5aa24aedc8
Коммит 65f03de1ee
7 изменённых файлов: 145 добавлений и 9 удалений

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

@@ -81,6 +81,11 @@ func (api *PluginAPI) GetConfig() *model.Config {
return api.app.GetSanitizedConfig()
}
// GetUnsanitizedConfig gets the configuration for a system admin without removing secrets.
func (api *PluginAPI) GetUnsanitizedConfig() *model.Config {
return api.app.Config().Clone()
}
func (api *PluginAPI) SaveConfig(config *model.Config) *model.AppError {
return api.app.SaveConfig(config, true)
}

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

@@ -1331,3 +1331,77 @@ func TestPluginCreatePostWithUploadedFile(t *testing.T) {
require.Nil(t, err)
assert.Equal(t, model.StringArray{fileInfo.Id}, actualPost.FileIds)
}
func TestPluginAPIGetConfig(t *testing.T) {
th := Setup(t).InitBasic()
defer th.TearDown()
api := th.SetupPluginAPI()
config := api.GetConfig()
if config.LdapSettings.BindPassword != nil && len(*config.LdapSettings.BindPassword) > 0 {
assert.Equal(t, *config.LdapSettings.BindPassword, model.FAKE_SETTING)
}
assert.Equal(t, *config.FileSettings.PublicLinkSalt, model.FAKE_SETTING)
if len(*config.FileSettings.AmazonS3SecretAccessKey) > 0 {
assert.Equal(t, *config.FileSettings.AmazonS3SecretAccessKey, model.FAKE_SETTING)
}
if config.EmailSettings.SMTPPassword != nil && len(*config.EmailSettings.SMTPPassword) > 0 {
assert.Equal(t, *config.EmailSettings.SMTPPassword, model.FAKE_SETTING)
}
if len(*config.GitLabSettings.Secret) > 0 {
assert.Equal(t, *config.GitLabSettings.Secret, model.FAKE_SETTING)
}
assert.Equal(t, *config.SqlSettings.DataSource, model.FAKE_SETTING)
assert.Equal(t, *config.SqlSettings.AtRestEncryptKey, model.FAKE_SETTING)
assert.Equal(t, *config.ElasticsearchSettings.Password, model.FAKE_SETTING)
for i := range config.SqlSettings.DataSourceReplicas {
assert.Equal(t, config.SqlSettings.DataSourceReplicas[i], model.FAKE_SETTING)
}
for i := range config.SqlSettings.DataSourceSearchReplicas {
assert.Equal(t, config.SqlSettings.DataSourceSearchReplicas[i], model.FAKE_SETTING)
}
}
func TestPluginAPIGetUnsanitizedConfig(t *testing.T) {
th := Setup(t).InitBasic()
defer th.TearDown()
api := th.SetupPluginAPI()
config := api.GetUnsanitizedConfig()
if config.LdapSettings.BindPassword != nil && len(*config.LdapSettings.BindPassword) > 0 {
assert.NotEqual(t, *config.LdapSettings.BindPassword, model.FAKE_SETTING)
}
assert.NotEqual(t, *config.FileSettings.PublicLinkSalt, model.FAKE_SETTING)
if len(*config.FileSettings.AmazonS3SecretAccessKey) > 0 {
assert.NotEqual(t, *config.FileSettings.AmazonS3SecretAccessKey, model.FAKE_SETTING)
}
if config.EmailSettings.SMTPPassword != nil && len(*config.EmailSettings.SMTPPassword) > 0 {
assert.NotEqual(t, *config.EmailSettings.SMTPPassword, model.FAKE_SETTING)
}
if len(*config.GitLabSettings.Secret) > 0 {
assert.NotEqual(t, *config.GitLabSettings.Secret, model.FAKE_SETTING)
}
assert.NotEqual(t, *config.SqlSettings.DataSource, model.FAKE_SETTING)
assert.NotEqual(t, *config.SqlSettings.AtRestEncryptKey, model.FAKE_SETTING)
assert.NotEqual(t, *config.ElasticsearchSettings.Password, model.FAKE_SETTING)
for i := range config.SqlSettings.DataSourceReplicas {
assert.NotEqual(t, config.SqlSettings.DataSourceReplicas[i], model.FAKE_SETTING)
}
for i := range config.SqlSettings.DataSourceSearchReplicas {
assert.NotEqual(t, config.SqlSettings.DataSourceSearchReplicas[i], model.FAKE_SETTING)
}
}