[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 удалений

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

@@ -31,6 +31,11 @@ type API interface {
// GetConfig fetches the currently persisted config
GetConfig() *model.Config
// GetUnsanitizedConfig fetches the currently persisted config without removing secrets.
//
// Minimum server version: 5.16
GetUnsanitizedConfig() *model.Config
// SaveConfig sets the given config and persists the changes
SaveConfig(config *model.Config) *model.AppError

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

@@ -588,6 +588,33 @@ func (s *apiRPCServer) GetConfig(args *Z_GetConfigArgs, returns *Z_GetConfigRetu
return nil
}
type Z_GetUnsanitizedConfigArgs struct {
}
type Z_GetUnsanitizedConfigReturns struct {
A *model.Config
}
func (g *apiRPCClient) GetUnsanitizedConfig() *model.Config {
_args := &Z_GetUnsanitizedConfigArgs{}
_returns := &Z_GetUnsanitizedConfigReturns{}
if err := g.client.Call("Plugin.GetUnsanitizedConfig", _args, _returns); err != nil {
log.Printf("RPC call to GetUnsanitizedConfig API failed: %s", err.Error())
}
return _returns.A
}
func (s *apiRPCServer) GetUnsanitizedConfig(args *Z_GetUnsanitizedConfigArgs, returns *Z_GetUnsanitizedConfigReturns) error {
if hook, ok := s.impl.(interface {
GetUnsanitizedConfig() *model.Config
}); ok {
returns.A = hook.GetUnsanitizedConfig()
} else {
return encodableError(fmt.Errorf("API GetUnsanitizedConfig called but not implemented."))
}
return nil
}
type Z_SaveConfigArgs struct {
A *model.Config
}

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

@@ -4,8 +4,10 @@
package plugintest
import mock "github.com/stretchr/testify/mock"
import model "github.com/mattermost/mattermost-server/model"
import (
model "github.com/mattermost/mattermost-server/model"
mock "github.com/stretchr/testify/mock"
)
// API is an autogenerated mock type for the API type
type API struct {
@@ -1636,6 +1638,22 @@ func (_m *API) GetTeamsUnreadForUser(userId string) ([]*model.TeamUnread, *model
return r0, r1
}
// GetUnsanitizedConfig provides a mock function with given fields:
func (_m *API) GetUnsanitizedConfig() *model.Config {
ret := _m.Called()
var r0 *model.Config
if rf, ok := ret.Get(0).(func() *model.Config); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.Config)
}
}
return r0
}
// GetUser provides a mock function with given fields: userId
func (_m *API) GetUser(userId string) (*model.User, *model.AppError) {
ret := _m.Called(userId)

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

@@ -4,8 +4,10 @@
package plugintest
import mock "github.com/stretchr/testify/mock"
import model "github.com/mattermost/mattermost-server/model"
import (
model "github.com/mattermost/mattermost-server/model"
mock "github.com/stretchr/testify/mock"
)
// Helpers is an autogenerated mock type for the Helpers type
type Helpers struct {

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

@@ -4,11 +4,16 @@
package plugintest
import http "net/http"
import io "io"
import mock "github.com/stretchr/testify/mock"
import model "github.com/mattermost/mattermost-server/model"
import plugin "github.com/mattermost/mattermost-server/plugin"
import (
io "io"
http "net/http"
mock "github.com/stretchr/testify/mock"
model "github.com/mattermost/mattermost-server/model"
plugin "github.com/mattermost/mattermost-server/plugin"
)
// Hooks is an autogenerated mock type for the Hooks type
type Hooks struct {