summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris <ccbrown112@gmail.com>2017-10-23 02:39:51 -0700
committerGitHub <noreply@github.com>2017-10-23 02:39:51 -0700
commit08b7b1c4144f18a9dbf52bfe0eb9182f2b4eba4a (patch)
tree6f2613d6032cfb6d357925c0f64cc02920694549
parentfd6192473b3c2a91d1520e366d931063e359a67d (diff)
downloadchat-08b7b1c4144f18a9dbf52bfe0eb9182f2b4eba4a.tar.gz
chat-08b7b1c4144f18a9dbf52bfe0eb9182f2b4eba4a.tar.bz2
chat-08b7b1c4144f18a9dbf52bfe0eb9182f2b4eba4a.zip
Reduce cfg boilerplate (#7689)
* reduce cfg boilerplate * fix compile error * user test fix * another test fix * simplify diagnostics / testing
-rw-r--r--api/apitestlib.go9
-rw-r--r--api/command_loadtest_test.go112
-rw-r--r--api/file_test.go42
-rw-r--r--api/post_test.go32
-rw-r--r--api/user_test.go79
-rw-r--r--api/webhook_test.go65
-rw-r--r--api4/apitestlib.go9
-rw-r--r--api4/user_test.go82
-rw-r--r--api4/webhook_test.go77
-rw-r--r--app/channel_test.go13
-rw-r--r--app/diagnostics.go417
-rw-r--r--app/diagnostics_test.go23
-rw-r--r--model/config.go8
13 files changed, 279 insertions, 689 deletions
diff --git a/api/apitestlib.go b/api/apitestlib.go
index 5fc94cfec..b43bb2886 100644
--- a/api/apitestlib.go
+++ b/api/apitestlib.go
@@ -22,7 +22,8 @@ import (
)
type TestHelper struct {
- App *app.App
+ App *app.App
+ originalConfig *model.Config
BasicClient *model.Client
BasicTeam *model.Team
@@ -76,6 +77,7 @@ func setupTestHelper(enterprise bool) *TestHelper {
th := &TestHelper{
App: app.New(options...),
}
+ th.originalConfig = th.App.Config().Clone()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.MaxUsersPerTeam = 50 })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.RateLimitSettings.Enable = false })
@@ -372,6 +374,11 @@ func GenerateTestTeamName() string {
}
func (me *TestHelper) TearDown() {
+ me.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg = *me.originalConfig
+ })
+ utils.SetDefaultRolesBasedOnConfig()
+
me.App.Shutdown()
if err := recover(); err != nil {
StopTestStore()
diff --git a/api/command_loadtest_test.go b/api/command_loadtest_test.go
index 62545ae64..e5f95881d 100644
--- a/api/command_loadtest_test.go
+++ b/api/command_loadtest_test.go
@@ -18,12 +18,6 @@ func TestLoadTestHelpCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
- // enable testing to use /test but don't save it since we don't want to overwrite config.json
- enableTesting := th.App.Config().ServiceSettings.EnableTesting
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = enableTesting })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = true })
rs := Client.Must(Client.Command(channel.Id, "/test help")).Data.(*model.CommandResponse)
@@ -41,12 +35,6 @@ func TestLoadTestSetupCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
- // enable testing to use /test but don't save it since we don't want to overwrite config.json
- enableTesting := th.App.Config().ServiceSettings.EnableTesting
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = enableTesting })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = true })
rs := Client.Must(Client.Command(channel.Id, "/test setup fuzz 1 1 1")).Data.(*model.CommandResponse)
@@ -64,12 +52,6 @@ func TestLoadTestUsersCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
- // enable testing to use /test but don't save it since we don't want to overwrite config.json
- enableTesting := th.App.Config().ServiceSettings.EnableTesting
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = enableTesting })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = true })
rs := Client.Must(Client.Command(channel.Id, "/test users fuzz 1 2")).Data.(*model.CommandResponse)
@@ -87,12 +69,6 @@ func TestLoadTestChannelsCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
- // enable testing to use /test but don't save it since we don't want to overwrite config.json
- enableTesting := th.App.Config().ServiceSettings.EnableTesting
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = enableTesting })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = true })
rs := Client.Must(Client.Command(channel.Id, "/test channels fuzz 1 2")).Data.(*model.CommandResponse)
@@ -110,12 +86,6 @@ func TestLoadTestPostsCommands(t *testing.T) {
Client := th.BasicClient
channel := th.BasicChannel
- // enable testing to use /test but don't save it since we don't want to overwrite config.json
- enableTesting := th.App.Config().ServiceSettings.EnableTesting
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = enableTesting })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableTesting = true })
rs := Client.Must(Client.Command(channel.Id, "/test posts fuzz 2 3 2")).Data.(*model.CommandResponse)
@@ -125,85 +95,3 @@ func TestLoadTestPostsCommands(t *testing.T) {
time.Sleep(2 * time.Second)
}
-
-func TestLoadTestUrlCommands(t *testing.T) {
- //th := Setup().InitBasic()
- //Client := th.BasicClient
- //channel := th.BasicChannel
-
- // enable testing to use /loadtest but don't save it since we don't want to overwrite config.json
- //enableTesting := utils.Cfg.ServiceSettings.EnableTesting
- //defer func() {
- // utils.Cfg.ServiceSettings.EnableTesting = enableTesting
- //}()
-
- //utils.Cfg.ServiceSettings.EnableTesting = true
-
- //command := "/loadtest url "
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Command must contain a url" {
- // t.Fatal("/loadtest url with no url should've failed")
- //}
- //
- //command = "/loadtest url http://missingfiletonwhere/path/asdf/qwerty"
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Unable to get file" {
- // t.Log(r.Text)
- // t.Fatal("/loadtest url with invalid url should've failed")
- //}
- //
- //command = "/loadtest url https://raw.githubusercontent.com/mattermost/mattermost-server/master/README.md"
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loaded data" {
- // t.Fatal("/loadtest url for README.md should've executed")
- //}
-
- // Removing these tests since they break compatibilty with previous release branches because the url pulls from github master
-
- // command = "/loadtest url test-emoticons1.md"
- // if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
- // t.Fatal("/loadtest url for test-emoticons.md should've executed")
- // }
-
- // command = "/loadtest url test-emoticons1"
- // if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loading data..." {
- // t.Fatal("/loadtest url for test-emoticons should've executed")
- // }
-
- // posts := Client.Must(Client.GetPosts(channel.Id, 0, 5, "")).Data.(*model.PostList)
- // // note that this may make more than 3 posts if files are too long to fit in an individual post
- // if len(posts.Order) < 3 {
- // t.Fatal("/loadtest url made too few posts, perhaps there needs to be a delay before GetPosts in the test?")
- // }
-
- //time.Sleep(2 * time.Second)
-}
-
-func TestLoadTestJsonCommands(t *testing.T) {
- //th := Setup().InitBasic()
- //Client := th.BasicClient
- //channel := th.BasicChannel
-
- // enable testing to use /loadtest but don't save it since we don't want to overwrite config.json
- //enableTesting := utils.Cfg.ServiceSettings.EnableTesting
- //defer func() {
- // utils.Cfg.ServiceSettings.EnableTesting = enableTesting
- //}()
-
- //utils.Cfg.ServiceSettings.EnableTesting = true
-
- //command := "/loadtest json "
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Command must contain a url" {
- // t.Fatal("/loadtest url with no url should've failed")
- //}
- //
- //command = "/loadtest json http://missingfiletonwhere/path/asdf/qwerty"
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Unable to get file" {
- // t.Log(r.Text)
- // t.Fatal("/loadtest url with invalid url should've failed")
- //}
- //
- //command = "/loadtest json test-slack-attachments"
- //if r := Client.Must(Client.Command(channel.Id, command, false)).Data.(*model.CommandResponse); r.Text != "Loaded data" {
- // t.Fatal("/loadtest json should've executed")
- //}
-
- //time.Sleep(2 * time.Second)
-}
diff --git a/api/file_test.go b/api/file_test.go
index 31eb3daef..cdf06c04d 100644
--- a/api/file_test.go
+++ b/api/file_test.go
@@ -136,7 +136,7 @@ func TestUploadFile(t *testing.T) {
// Wait a bit for files to ready
time.Sleep(2 * time.Second)
- if err := cleanupTestFile(info); err != nil {
+ if err := cleanupTestFile(info, &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -206,7 +206,7 @@ func TestGetFileInfo(t *testing.T) {
t.Fatal("other user got incorrect file")
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -289,7 +289,7 @@ func TestGetFile(t *testing.T) {
body.Close()
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -346,7 +346,7 @@ func TestGetFileThumbnail(t *testing.T) {
body.Close()
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -403,7 +403,7 @@ func TestGetFilePreview(t *testing.T) {
body.Close()
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -471,7 +471,7 @@ func TestGetPublicFile(t *testing.T) {
t.Fatal("should've failed to get image with public link after salt changed")
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -548,7 +548,7 @@ func TestGetPublicFileOld(t *testing.T) {
t.Fatal("should've failed to get image with public link after salt changed")
}
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -623,7 +623,7 @@ func TestGetPublicLink(t *testing.T) {
// Wait a bit for files to ready
time.Sleep(2 * time.Second)
- if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo)); err != nil {
+ if err := cleanupTestFile(store.Must(th.App.Srv.Store.FileInfo().Get(fileId)).(*model.FileInfo), &th.App.Config().FileSettings); err != nil {
t.Fatal(err)
}
}
@@ -899,19 +899,19 @@ func s3New(endpoint, accessKey, secretKey string, secure bool, signV2 bool, regi
return s3.NewWithCredentials(endpoint, creds, secure, region)
}
-func cleanupTestFile(info *model.FileInfo) error {
- if *utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_S3 {
- endpoint := utils.Cfg.FileSettings.AmazonS3Endpoint
- accessKey := utils.Cfg.FileSettings.AmazonS3AccessKeyId
- secretKey := utils.Cfg.FileSettings.AmazonS3SecretAccessKey
- secure := *utils.Cfg.FileSettings.AmazonS3SSL
- signV2 := *utils.Cfg.FileSettings.AmazonS3SignV2
- region := utils.Cfg.FileSettings.AmazonS3Region
+func cleanupTestFile(info *model.FileInfo, settings *model.FileSettings) error {
+ if *settings.DriverName == model.IMAGE_DRIVER_S3 {
+ endpoint := settings.AmazonS3Endpoint
+ accessKey := settings.AmazonS3AccessKeyId
+ secretKey := settings.AmazonS3SecretAccessKey
+ secure := *settings.AmazonS3SSL
+ signV2 := *settings.AmazonS3SignV2
+ region := settings.AmazonS3Region
s3Clnt, err := s3New(endpoint, accessKey, secretKey, secure, signV2, region)
if err != nil {
return err
}
- bucket := utils.Cfg.FileSettings.AmazonS3Bucket
+ bucket := settings.AmazonS3Bucket
if err := s3Clnt.RemoveObject(bucket, info.Path); err != nil {
return err
}
@@ -927,19 +927,19 @@ func cleanupTestFile(info *model.FileInfo) error {
return err
}
}
- } else if *utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_LOCAL {
- if err := os.Remove(utils.Cfg.FileSettings.Directory + info.Path); err != nil {
+ } else if *settings.DriverName == model.IMAGE_DRIVER_LOCAL {
+ if err := os.Remove(settings.Directory + info.Path); err != nil {
return err
}
if info.ThumbnailPath != "" {
- if err := os.Remove(utils.Cfg.FileSettings.Directory + info.ThumbnailPath); err != nil {
+ if err := os.Remove(settings.Directory + info.ThumbnailPath); err != nil {
return err
}
}
if info.PreviewPath != "" {
- if err := os.Remove(utils.Cfg.FileSettings.Directory + info.PreviewPath); err != nil {
+ if err := os.Remove(settings.Directory + info.PreviewPath); err != nil {
return err
}
}
diff --git a/api/post_test.go b/api/post_test.go
index 901a7c6d0..342bd03ae 100644
--- a/api/post_test.go
+++ b/api/post_test.go
@@ -241,16 +241,8 @@ func testCreatePostWithOutgoingHook(
user := th.SystemAdminUser
channel := th.CreateChannel(Client, team)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- allowedInternalConnections := *th.App.Config().ServiceSettings.AllowedUntrustedInternalConnections
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) {
- cfg.ServiceSettings.AllowedUntrustedInternalConnections = &allowedInternalConnections
- })
- }()
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) {
+ cfg.ServiceSettings.EnableOutgoingWebhooks = true
*cfg.ServiceSettings.AllowedUntrustedInternalConnections = "localhost 127.0.0.1"
})
@@ -406,13 +398,6 @@ func TestUpdatePost(t *testing.T) {
Client := th.BasicClient
channel1 := th.BasicChannel
- allowEditPost := *th.App.Config().ServiceSettings.AllowEditPost
- postEditTimeLimit := *th.App.Config().ServiceSettings.PostEditTimeLimit
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowEditPost = allowEditPost })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.PostEditTimeLimit = postEditTimeLimit })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.AllowEditPost = model.ALLOW_EDIT_POST_ALWAYS })
post1 := &model.Post{ChannelId: channel1.Id, Message: "zz" + model.NewId() + "a"}
@@ -981,11 +966,6 @@ func TestDeletePosts(t *testing.T) {
channel1 := th.BasicChannel
team1 := th.BasicTeam
- restrictPostDelete := *th.App.Config().ServiceSettings.RestrictPostDelete
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.RestrictPostDelete = restrictPostDelete })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.RestrictPostDelete = model.PERMISSIONS_DELETE_POST_ALL })
utils.SetDefaultRolesBasedOnConfig()
@@ -1482,16 +1462,8 @@ func TestGetOpenGraphMetadata(t *testing.T) {
Client := th.BasicClient
- enableLinkPreviews := *th.App.Config().ServiceSettings.EnableLinkPreviews
- allowedInternalConnections := *th.App.Config().ServiceSettings.AllowedUntrustedInternalConnections
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableLinkPreviews = enableLinkPreviews })
- th.App.UpdateConfig(func(cfg *model.Config) {
- cfg.ServiceSettings.AllowedUntrustedInternalConnections = &allowedInternalConnections
- })
- }()
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableLinkPreviews = true })
th.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg.ServiceSettings.EnableLinkPreviews = true
*cfg.ServiceSettings.AllowedUntrustedInternalConnections = "localhost 127.0.0.1"
})
diff --git a/api/user_test.go b/api/user_test.go
index c339d3346..a0ffe9fd9 100644
--- a/api/user_test.go
+++ b/api/user_test.go
@@ -89,18 +89,11 @@ func TestLogin(t *testing.T) {
Client := th.BasicClient
- enableSignInWithEmail := *th.App.Config().EmailSettings.EnableSignInWithEmail
- enableSignInWithUsername := *th.App.Config().EmailSettings.EnableSignInWithUsername
- enableLdap := *th.App.Config().LdapSettings.Enable
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithEmail = enableSignInWithEmail })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithUsername = enableSignInWithUsername })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.LdapSettings.Enable = enableLdap })
- }()
-
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithEmail = false })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithUsername = false })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.LdapSettings.Enable = false })
+ th.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg.EmailSettings.EnableSignInWithEmail = false
+ *cfg.EmailSettings.EnableSignInWithUsername = false
+ *cfg.LdapSettings.Enable = false
+ })
team := model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN}
rteam, _ := Client.CreateTeam(&team)
@@ -272,12 +265,6 @@ func TestPasswordGuessLockout(t *testing.T) {
user := th.BasicUser
Client.Must(Client.Logout())
- enableSignInWithEmail := *th.App.Config().EmailSettings.EnableSignInWithEmail
- passwordAttempts := *th.App.Config().ServiceSettings.MaximumLoginAttempts
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithEmail = enableSignInWithEmail })
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = passwordAttempts })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.EmailSettings.EnableSignInWithEmail = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = 2 })
@@ -410,12 +397,6 @@ func TestGetUser(t *testing.T) {
t.Fatal("shouldn't exist")
}
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -517,11 +498,6 @@ func TestGetProfiles(t *testing.T) {
th.BasicClient.Must(th.BasicClient.CreateDirectChannel(th.BasicUser2.Id))
- prevShowEmail := th.App.Config().PrivacySettings.ShowEmailAddress
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = prevShowEmail })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = true })
if result, err := th.BasicClient.GetProfiles(0, 100, ""); err != nil {
@@ -572,11 +548,6 @@ func TestGetProfilesByIds(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
- prevShowEmail := th.App.Config().PrivacySettings.ShowEmailAddress
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = prevShowEmail })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = true })
if result, err := th.BasicClient.GetProfilesByIds([]string{th.BasicUser.Id}); err != nil {
@@ -960,10 +931,6 @@ func TestUserUpdatePassword(t *testing.T) {
}
// Test lockout
- passwordAttempts := *th.App.Config().ServiceSettings.MaximumLoginAttempts
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = passwordAttempts })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = 2 })
// Fail twice
@@ -1887,11 +1854,9 @@ func TestUpdateMfa(t *testing.T) {
isLicensed := utils.IsLicensed()
license := utils.License()
- enableMfa := *th.App.Config().ServiceSettings.EnableMultifactorAuthentication
defer func() {
utils.SetIsLicensed(isLicensed)
utils.SetLicense(license)
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableMultifactorAuthentication = enableMfa })
}()
utils.SetIsLicensed(false)
utils.SetLicense(&model.License{Features: &model.Features{}})
@@ -2059,11 +2024,6 @@ func TestGetProfilesInChannel(t *testing.T) {
Client := th.BasicClient
- prevShowEmail := th.App.Config().PrivacySettings.ShowEmailAddress
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = prevShowEmail })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = true })
if result, err := Client.GetProfilesInChannel(th.BasicChannel.Id, 0, 100, ""); err != nil {
@@ -2133,11 +2093,6 @@ func TestGetProfilesNotInChannel(t *testing.T) {
Client := th.BasicClient
- prevShowEmail := th.App.Config().PrivacySettings.ShowEmailAddress
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = prevShowEmail })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = true })
if result, err := Client.GetProfilesNotInChannel(th.BasicChannel.Id, 0, 100, ""); err != nil {
@@ -2359,12 +2314,6 @@ func TestSearchUsers(t *testing.T) {
}
}
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -2653,10 +2602,6 @@ func TestAutocompleteUsers(t *testing.T) {
}
}
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
privacyUser := &model.User{Email: strings.ToLower(model.NewId()) + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1", FirstName: model.NewId(), LastName: "Jimmers"}
@@ -2712,13 +2657,6 @@ func TestGetByUsername(t *testing.T) {
}
}
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -2749,13 +2687,6 @@ func TestGetByEmail(t *testing.T) {
t.Fatal("Failed to get user by email")
}
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
diff --git a/api/webhook_test.go b/api/webhook_test.go
index 6aa857af8..285650b5c 100644
--- a/api/webhook_test.go
+++ b/api/webhook_test.go
@@ -25,13 +25,6 @@ func TestCreateIncomingHook(t *testing.T) {
user2 := th.CreateUser(Client)
th.LinkUserToTeam(user2, team)
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -139,14 +132,6 @@ func TestUpdateIncomingHook(t *testing.T) {
th.LinkUserToTeam(user3, team2)
th.UpdateUserToTeamAdmin(user3, team2)
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -338,13 +323,6 @@ func TestListIncomingHooks(t *testing.T) {
user2 := th.CreateUser(Client)
th.LinkUserToTeam(user2, team)
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -397,13 +375,6 @@ func TestDeleteIncomingHook(t *testing.T) {
user2 := th.CreateUser(Client)
th.LinkUserToTeam(user2, team)
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -475,13 +446,6 @@ func TestCreateOutgoingHook(t *testing.T) {
user3 := th.CreateUser(Client)
th.LinkUserToTeam(user3, team2)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -586,13 +550,6 @@ func TestListOutgoingHooks(t *testing.T) {
user2 := th.CreateUser(Client)
th.LinkUserToTeam(user2, team)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -651,14 +608,6 @@ func TestUpdateOutgoingHook(t *testing.T) {
user3 := th.CreateUser(Client)
th.LinkUserToTeam(user3, team2)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
-
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -829,13 +778,6 @@ func TestDeleteOutgoingHook(t *testing.T) {
user2 := th.CreateUser(Client)
th.LinkUserToTeam(user2, team)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -905,13 +847,6 @@ func TestRegenOutgoingHookToken(t *testing.T) {
user3 := th.CreateUser(Client)
th.LinkUserToTeam(user3, team2)
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
diff --git a/api4/apitestlib.go b/api4/apitestlib.go
index 3e093df56..54b142c4b 100644
--- a/api4/apitestlib.go
+++ b/api4/apitestlib.go
@@ -32,7 +32,8 @@ import (
)
type TestHelper struct {
- App *app.App
+ App *app.App
+ originalConfig *model.Config
Client *model.Client4
BasicUser *model.User
@@ -86,6 +87,7 @@ func setupTestHelper(enterprise bool) *TestHelper {
th := &TestHelper{
App: app.New(options...),
}
+ th.originalConfig = th.App.Config().Clone()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.MaxUsersPerTeam = 50 })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.RateLimitSettings.Enable = false })
@@ -177,6 +179,11 @@ func (me *TestHelper) TearDown() {
wg.Wait()
+ me.App.UpdateConfig(func(cfg *model.Config) {
+ *cfg = *me.originalConfig
+ })
+ utils.SetDefaultRolesBasedOnConfig()
+
me.App.Shutdown()
utils.EnableDebugLogForTest()
diff --git a/api4/user_test.go b/api4/user_test.go
index 59057f347..664b7375a 100644
--- a/api4/user_test.go
+++ b/api4/user_test.go
@@ -63,12 +63,6 @@ func TestCreateUser(t *testing.T) {
CheckErrorMessage(t, resp, "model.user.is_valid.email.app_error")
CheckBadRequestStatus(t, resp)
- openServer := *th.App.Config().TeamSettings.EnableOpenServer
- canCreateAccount := th.App.Config().TeamSettings.EnableUserCreation
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = openServer })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = canCreateAccount })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = false })
@@ -185,15 +179,13 @@ func TestCreateUserWithHash(t *testing.T) {
data := model.MapToJson(props)
hash := utils.HashSha256(fmt.Sprintf("%v:%v", data, th.App.Config().EmailSettings.InviteSalt))
- canCreateAccount := th.App.Config().TeamSettings.EnableUserCreation
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = canCreateAccount })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = false })
_, resp := Client.CreateUserWithHash(&user, hash, data)
CheckNotImplementedStatus(t, resp)
CheckErrorMessage(t, resp, "api.user.create_user.signup_email_disabled.app_error")
+
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = true })
})
t.Run("EnableOpenServerDisable", func(t *testing.T) {
@@ -208,10 +200,6 @@ func TestCreateUserWithHash(t *testing.T) {
data := model.MapToJson(props)
hash := utils.HashSha256(fmt.Sprintf("%v:%v", data, th.App.Config().EmailSettings.InviteSalt))
- openServer := *th.App.Config().TeamSettings.EnableOpenServer
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = openServer })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = false })
ruser, resp := Client.CreateUserWithHash(&user, hash, data)
@@ -291,10 +279,6 @@ func TestCreateUserWithInviteId(t *testing.T) {
t.Run("EnableUserCreationDisable", func(t *testing.T) {
user := model.User{Email: GenerateTestEmail(), Nickname: "Corey Hulen", Password: "hello1", Username: GenerateTestUsername(), Roles: model.ROLE_SYSTEM_ADMIN.Id + " " + model.ROLE_SYSTEM_USER.Id}
- canCreateAccount := th.App.Config().TeamSettings.EnableUserCreation
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = canCreateAccount })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = false })
inviteId := th.BasicTeam.InviteId
@@ -302,15 +286,13 @@ func TestCreateUserWithInviteId(t *testing.T) {
_, resp := Client.CreateUserWithInviteId(&user, inviteId)
CheckNotImplementedStatus(t, resp)
CheckErrorMessage(t, resp, "api.user.create_user.signup_email_disabled.app_error")
+
+ th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.EnableUserCreation = true })
})
t.Run("EnableOpenServerDisable", func(t *testing.T) {
user := model.User{Email: GenerateTestEmail(), Nickname: "Corey Hulen", Password: "hello1", Username: GenerateTestUsername(), Roles: model.ROLE_SYSTEM_ADMIN.Id + " " + model.ROLE_SYSTEM_USER.Id}
- openServer := *th.App.Config().TeamSettings.EnableOpenServer
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = openServer })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.EnableOpenServer = false })
inviteId := th.BasicTeam.InviteId
@@ -380,12 +362,6 @@ func TestGetUser(t *testing.T) {
CheckNotFoundStatus(t, resp)
// Check against privacy config settings
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -441,12 +417,6 @@ func TestGetUserByUsername(t *testing.T) {
CheckNotFoundStatus(t, resp)
// Check against privacy config settings
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -505,12 +475,6 @@ func TestGetUserByEmail(t *testing.T) {
CheckNotFoundStatus(t, resp)
// Check against privacy config settings
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -672,12 +636,6 @@ func TestSearchUsers(t *testing.T) {
search.Term = th.BasicUser.Username
- emailPrivacy := th.App.Config().PrivacySettings.ShowEmailAddress
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = emailPrivacy })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowEmailAddress = false })
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
@@ -830,10 +788,6 @@ func TestAutocompleteUsers(t *testing.T) {
CheckNoError(t, resp)
// Check against privacy config settings
- namePrivacy := th.App.Config().PrivacySettings.ShowFullName
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = namePrivacy })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.PrivacySettings.ShowFullName = false })
th.LoginBasic()
@@ -1739,10 +1693,6 @@ func TestUpdateUserPassword(t *testing.T) {
th.LoginBasic()
// Test lockout
- passwordAttempts := *th.App.Config().ServiceSettings.MaximumLoginAttempts
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = passwordAttempts })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.MaximumLoginAttempts = 2 })
// Fail twice
@@ -2181,10 +2131,6 @@ func TestSwitchAccount(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableGitLab := th.App.Config().GitLabSettings.Enable
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.GitLabSettings.Enable = enableGitLab })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.GitLabSettings.Enable = true })
Client.Logout()
@@ -2275,10 +2221,6 @@ func TestCreateUserAccessToken(t *testing.T) {
testDescription := "test token"
- enableUserAccessTokens := *th.App.Config().ServiceSettings.EnableUserAccessTokens
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = enableUserAccessTokens })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
_, resp := Client.CreateUserAccessToken(th.BasicUser.Id, testDescription)
@@ -2360,10 +2302,6 @@ func TestGetUserAccessToken(t *testing.T) {
testDescription := "test token"
- enableUserAccessTokens := *th.App.Config().ServiceSettings.EnableUserAccessTokens
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = enableUserAccessTokens })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
_, resp := Client.GetUserAccessToken("123")
@@ -2431,10 +2369,6 @@ func TestRevokeUserAccessToken(t *testing.T) {
testDescription := "test token"
- enableUserAccessTokens := *th.App.Config().ServiceSettings.EnableUserAccessTokens
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = enableUserAccessTokens })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
th.App.UpdateUserRoles(th.BasicUser.Id, model.ROLE_SYSTEM_USER.Id+" "+model.ROLE_SYSTEM_USER_ACCESS_TOKEN.Id)
@@ -2572,10 +2506,6 @@ func TestUserAccessTokenInactiveUser(t *testing.T) {
testDescription := "test token"
- enableUserAccessTokens := *th.App.Config().ServiceSettings.EnableUserAccessTokens
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = enableUserAccessTokens })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
th.App.UpdateUserRoles(th.BasicUser.Id, model.ROLE_SYSTEM_USER.Id+" "+model.ROLE_SYSTEM_USER_ACCESS_TOKEN.Id)
@@ -2599,10 +2529,6 @@ func TestUserAccessTokenDisableConfig(t *testing.T) {
testDescription := "test token"
- enableUserAccessTokens := *th.App.Config().ServiceSettings.EnableUserAccessTokens
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = enableUserAccessTokens })
- }()
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableUserAccessTokens = true })
th.App.UpdateUserRoles(th.BasicUser.Id, model.ROLE_SYSTEM_USER.Id+" "+model.ROLE_SYSTEM_USER_ACCESS_TOKEN.Id)
diff --git a/api4/webhook_test.go b/api4/webhook_test.go
index 6740ee097..71aa7b9b3 100644
--- a/api4/webhook_test.go
+++ b/api4/webhook_test.go
@@ -19,13 +19,6 @@ func TestCreateIncomingWebhook(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -76,13 +69,6 @@ func TestGetIncomingWebhooks(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -158,13 +144,6 @@ func TestGetIncomingWebhook(t *testing.T) {
defer th.TearDown()
Client := th.SystemAdminClient
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -206,13 +185,6 @@ func TestDeleteIncomingWebhook(t *testing.T) {
defer th.TearDown()
Client := th.SystemAdminClient
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -266,13 +238,6 @@ func TestCreateOutgoingWebhook(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -319,13 +284,6 @@ func TestGetOutgoingWebhooks(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -424,13 +382,6 @@ func TestGetOutgoingWebhook(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -463,13 +414,6 @@ func TestUpdateIncomingHook(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -632,13 +576,6 @@ func TestRegenOutgoingHookToken(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -673,13 +610,6 @@ func TestUpdateOutgoingHook(t *testing.T) {
defer th.TearDown()
Client := th.Client
- enableOutgoingHooks := th.App.Config().ServiceSettings.EnableOutgoingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = enableOutgoingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOutgoingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
@@ -840,13 +770,6 @@ func TestDeleteOutgoingHook(t *testing.T) {
defer th.TearDown()
Client := th.SystemAdminClient
- enableIncomingHooks := th.App.Config().ServiceSettings.EnableIncomingWebhooks
- enableAdminOnlyHooks := th.App.Config().ServiceSettings.EnableOnlyAdminIntegrations
- defer func() {
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks })
- th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks })
- utils.SetDefaultRolesBasedOnConfig()
- }()
th.App.UpdateConfig(func(cfg *model.Config) { cfg.ServiceSettings.EnableIncomingWebhooks = true })
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.EnableOnlyAdminIntegrations = true })
utils.SetDefaultRolesBasedOnConfig()
diff --git a/app/channel_test.go b/app/channel_test.go
index b1d403896..374b20657 100644
--- a/app/channel_test.go
+++ b/app/channel_test.go
@@ -4,21 +4,16 @@ import (
"testing"
"github.com/mattermost/mattermost-server/model"
- "github.com/mattermost/mattermost-server/utils"
)
func TestPermanentDeleteChannel(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
- incomingWasEnabled := utils.Cfg.ServiceSettings.EnableIncomingWebhooks
- outgoingWasEnabled := utils.Cfg.ServiceSettings.EnableOutgoingWebhooks
- utils.Cfg.ServiceSettings.EnableIncomingWebhooks = true
- utils.Cfg.ServiceSettings.EnableOutgoingWebhooks = true
- defer func() {
- utils.Cfg.ServiceSettings.EnableIncomingWebhooks = incomingWasEnabled
- utils.Cfg.ServiceSettings.EnableOutgoingWebhooks = outgoingWasEnabled
- }()
+ th.App.UpdateConfig(func(cfg *model.Config) {
+ cfg.ServiceSettings.EnableIncomingWebhooks = true
+ cfg.ServiceSettings.EnableOutgoingWebhooks = true
+ })
channel, err := th.App.CreateChannel(&model.Channel{DisplayName: "deletion-test", Name: "deletion-test", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id}, false)
if err != nil {
diff --git a/app/diagnostics.go b/app/diagnostics.go
index dda86eb35..689a79f81 100644
--- a/app/diagnostics.go
+++ b/app/diagnostics.go
@@ -55,7 +55,7 @@ func (a *App) SendDailyDiagnostics() {
if *a.Config().LogSettings.EnableDiagnostics && a.IsLeader() {
initDiagnostics("")
a.trackActivity()
- trackConfig()
+ a.trackConfig()
trackLicense()
a.trackServer()
}
@@ -92,8 +92,8 @@ func isDefault(setting interface{}, defaultValue interface{}) bool {
return false
}
-func pluginSetting(plugin, key string, defaultValue interface{}) interface{} {
- settings, ok := utils.Cfg.PluginSettings.Plugins[plugin]
+func pluginSetting(pluginSettings *model.PluginSettings, plugin, key string, defaultValue interface{}) interface{} {
+ settings, ok := pluginSettings.Plugins[plugin]
if !ok {
return defaultValue
}
@@ -175,287 +175,288 @@ func (a *App) trackActivity() {
})
}
-func trackConfig() {
+func (a *App) trackConfig() {
+ cfg := a.Config()
SendDiagnostic(TRACK_CONFIG_SERVICE, map[string]interface{}{
- "web_server_mode": *utils.Cfg.ServiceSettings.WebserverMode,
- "enable_security_fix_alert": *utils.Cfg.ServiceSettings.EnableSecurityFixAlert,
- "enable_insecure_outgoing_connections": *utils.Cfg.ServiceSettings.EnableInsecureOutgoingConnections,
- "enable_incoming_webhooks": utils.Cfg.ServiceSettings.EnableIncomingWebhooks,
- "enable_outgoing_webhooks": utils.Cfg.ServiceSettings.EnableOutgoingWebhooks,
- "enable_commands": *utils.Cfg.ServiceSettings.EnableCommands,
- "enable_only_admin_integrations": *utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations,
- "enable_post_username_override": utils.Cfg.ServiceSettings.EnablePostUsernameOverride,
- "enable_post_icon_override": utils.Cfg.ServiceSettings.EnablePostIconOverride,
- "enable_apiv3": *utils.Cfg.ServiceSettings.EnableAPIv3,
- "enable_user_access_tokens": *utils.Cfg.ServiceSettings.EnableUserAccessTokens,
- "enable_custom_emoji": *utils.Cfg.ServiceSettings.EnableCustomEmoji,
- "enable_emoji_picker": *utils.Cfg.ServiceSettings.EnableEmojiPicker,
- "restrict_custom_emoji_creation": *utils.Cfg.ServiceSettings.RestrictCustomEmojiCreation,
- "enable_testing": utils.Cfg.ServiceSettings.EnableTesting,
- "enable_developer": *utils.Cfg.ServiceSettings.EnableDeveloper,
- "enable_multifactor_authentication": *utils.Cfg.ServiceSettings.EnableMultifactorAuthentication,
- "enforce_multifactor_authentication": *utils.Cfg.ServiceSettings.EnforceMultifactorAuthentication,
- "enable_oauth_service_provider": utils.Cfg.ServiceSettings.EnableOAuthServiceProvider,
- "connection_security": *utils.Cfg.ServiceSettings.ConnectionSecurity,
- "uses_letsencrypt": *utils.Cfg.ServiceSettings.UseLetsEncrypt,
- "forward_80_to_443": *utils.Cfg.ServiceSettings.Forward80To443,
- "maximum_login_attempts": *utils.Cfg.ServiceSettings.MaximumLoginAttempts,
- "session_length_web_in_days": *utils.Cfg.ServiceSettings.SessionLengthWebInDays,
- "session_length_mobile_in_days": *utils.Cfg.ServiceSettings.SessionLengthMobileInDays,
- "session_length_sso_in_days": *utils.Cfg.ServiceSettings.SessionLengthSSOInDays,
- "session_cache_in_minutes": *utils.Cfg.ServiceSettings.SessionCacheInMinutes,
- "session_idle_timeout_in_minutes": *utils.Cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
- "isdefault_site_url": isDefault(*utils.Cfg.ServiceSettings.SiteURL, model.SERVICE_SETTINGS_DEFAULT_SITE_URL),
- "isdefault_tls_cert_file": isDefault(*utils.Cfg.ServiceSettings.TLSCertFile, model.SERVICE_SETTINGS_DEFAULT_TLS_CERT_FILE),
- "isdefault_tls_key_file": isDefault(*utils.Cfg.ServiceSettings.TLSKeyFile, model.SERVICE_SETTINGS_DEFAULT_TLS_KEY_FILE),
- "isdefault_read_timeout": isDefault(*utils.Cfg.ServiceSettings.ReadTimeout, model.SERVICE_SETTINGS_DEFAULT_READ_TIMEOUT),
- "isdefault_write_timeout": isDefault(*utils.Cfg.ServiceSettings.WriteTimeout, model.SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT),
- "isdefault_google_developer_key": isDefault(utils.Cfg.ServiceSettings.GoogleDeveloperKey, ""),
- "isdefault_allow_cors_from": isDefault(*utils.Cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
- "isdefault_allowed_untrusted_internal_connections": isDefault(*utils.Cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
- "restrict_post_delete": *utils.Cfg.ServiceSettings.RestrictPostDelete,
- "allow_edit_post": *utils.Cfg.ServiceSettings.AllowEditPost,
- "post_edit_time_limit": *utils.Cfg.ServiceSettings.PostEditTimeLimit,
- "enable_user_typing_messages": *utils.Cfg.ServiceSettings.EnableUserTypingMessages,
- "enable_channel_viewed_messages": *utils.Cfg.ServiceSettings.EnableChannelViewedMessages,
- "time_between_user_typing_updates_milliseconds": *utils.Cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
- "cluster_log_timeout_milliseconds": *utils.Cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
- "enable_post_search": *utils.Cfg.ServiceSettings.EnablePostSearch,
- "enable_user_statuses": *utils.Cfg.ServiceSettings.EnableUserStatuses,
+ "web_server_mode": *cfg.ServiceSettings.WebserverMode,
+ "enable_security_fix_alert": *cfg.ServiceSettings.EnableSecurityFixAlert,
+ "enable_insecure_outgoing_connections": *cfg.ServiceSettings.EnableInsecureOutgoingConnections,
+ "enable_incoming_webhooks": cfg.ServiceSettings.EnableIncomingWebhooks,
+ "enable_outgoing_webhooks": cfg.ServiceSettings.EnableOutgoingWebhooks,
+ "enable_commands": *cfg.ServiceSettings.EnableCommands,
+ "enable_only_admin_integrations": *cfg.ServiceSettings.EnableOnlyAdminIntegrations,
+ "enable_post_username_override": cfg.ServiceSettings.EnablePostUsernameOverride,
+ "enable_post_icon_override": cfg.ServiceSettings.EnablePostIconOverride,
+ "enable_apiv3": *cfg.ServiceSettings.EnableAPIv3,
+ "enable_user_access_tokens": *cfg.ServiceSettings.EnableUserAccessTokens,
+ "enable_custom_emoji": *cfg.ServiceSettings.EnableCustomEmoji,
+ "enable_emoji_picker": *cfg.ServiceSettings.EnableEmojiPicker,
+ "restrict_custom_emoji_creation": *cfg.ServiceSettings.RestrictCustomEmojiCreation,
+ "enable_testing": cfg.ServiceSettings.EnableTesting,
+ "enable_developer": *cfg.ServiceSettings.EnableDeveloper,
+ "enable_multifactor_authentication": *cfg.ServiceSettings.EnableMultifactorAuthentication,
+ "enforce_multifactor_authentication": *cfg.ServiceSettings.EnforceMultifactorAuthentication,
+ "enable_oauth_service_provider": cfg.ServiceSettings.EnableOAuthServiceProvider,
+ "connection_security": *cfg.ServiceSettings.ConnectionSecurity,
+ "uses_letsencrypt": *cfg.ServiceSettings.UseLetsEncrypt,
+ "forward_80_to_443": *cfg.ServiceSettings.Forward80To443,
+ "maximum_login_attempts": *cfg.ServiceSettings.MaximumLoginAttempts,
+ "session_length_web_in_days": *cfg.ServiceSettings.SessionLengthWebInDays,
+ "session_length_mobile_in_days": *cfg.ServiceSettings.SessionLengthMobileInDays,
+ "session_length_sso_in_days": *cfg.ServiceSettings.SessionLengthSSOInDays,
+ "session_cache_in_minutes": *cfg.ServiceSettings.SessionCacheInMinutes,
+ "session_idle_timeout_in_minutes": *cfg.ServiceSettings.SessionIdleTimeoutInMinutes,
+ "isdefault_site_url": isDefault(*cfg.ServiceSettings.SiteURL, model.SERVICE_SETTINGS_DEFAULT_SITE_URL),
+ "isdefault_tls_cert_file": isDefault(*cfg.ServiceSettings.TLSCertFile, model.SERVICE_SETTINGS_DEFAULT_TLS_CERT_FILE),
+ "isdefault_tls_key_file": isDefault(*cfg.ServiceSettings.TLSKeyFile, model.SERVICE_SETTINGS_DEFAULT_TLS_KEY_FILE),
+ "isdefault_read_timeout": isDefault(*cfg.ServiceSettings.ReadTimeout, model.SERVICE_SETTINGS_DEFAULT_READ_TIMEOUT),
+ "isdefault_write_timeout": isDefault(*cfg.ServiceSettings.WriteTimeout, model.SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT),
+ "isdefault_google_developer_key": isDefault(cfg.ServiceSettings.GoogleDeveloperKey, ""),
+ "isdefault_allow_cors_from": isDefault(*cfg.ServiceSettings.AllowCorsFrom, model.SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM),
+ "isdefault_allowed_untrusted_internal_connections": isDefault(*cfg.ServiceSettings.AllowedUntrustedInternalConnections, ""),
+ "restrict_post_delete": *cfg.ServiceSettings.RestrictPostDelete,
+ "allow_edit_post": *cfg.ServiceSettings.AllowEditPost,
+ "post_edit_time_limit": *cfg.ServiceSettings.PostEditTimeLimit,
+ "enable_user_typing_messages": *cfg.ServiceSettings.EnableUserTypingMessages,
+ "enable_channel_viewed_messages": *cfg.ServiceSettings.EnableChannelViewedMessages,
+ "time_between_user_typing_updates_milliseconds": *cfg.ServiceSettings.TimeBetweenUserTypingUpdatesMilliseconds,
+ "cluster_log_timeout_milliseconds": *cfg.ServiceSettings.ClusterLogTimeoutMilliseconds,
+ "enable_post_search": *cfg.ServiceSettings.EnablePostSearch,
+ "enable_user_statuses": *cfg.ServiceSettings.EnableUserStatuses,
})
SendDiagnostic(TRACK_CONFIG_TEAM, map[string]interface{}{
- "enable_user_creation": utils.Cfg.TeamSettings.EnableUserCreation,
- "enable_team_creation": utils.Cfg.TeamSettings.EnableTeamCreation,
- "restrict_team_invite": *utils.Cfg.TeamSettings.RestrictTeamInvite,
- "restrict_public_channel_creation": *utils.Cfg.TeamSettings.RestrictPublicChannelCreation,
- "restrict_private_channel_creation": *utils.Cfg.TeamSettings.RestrictPrivateChannelCreation,
- "restrict_public_channel_management": *utils.Cfg.TeamSettings.RestrictPublicChannelManagement,
- "restrict_private_channel_management": *utils.Cfg.TeamSettings.RestrictPrivateChannelManagement,
- "restrict_public_channel_deletion": *utils.Cfg.TeamSettings.RestrictPublicChannelDeletion,
- "restrict_private_channel_deletion": *utils.Cfg.TeamSettings.RestrictPrivateChannelDeletion,
- "enable_open_server": *utils.Cfg.TeamSettings.EnableOpenServer,
- "enable_custom_brand": *utils.Cfg.TeamSettings.EnableCustomBrand,
- "restrict_direct_message": *utils.Cfg.TeamSettings.RestrictDirectMessage,
- "max_notifications_per_channel": *utils.Cfg.TeamSettings.MaxNotificationsPerChannel,
- "enable_confirm_notifications_to_channel": *utils.Cfg.TeamSettings.EnableConfirmNotificationsToChannel,
- "max_users_per_team": *utils.Cfg.TeamSettings.MaxUsersPerTeam,
- "max_channels_per_team": *utils.Cfg.TeamSettings.MaxChannelsPerTeam,
- "teammate_name_display": *utils.Cfg.TeamSettings.TeammateNameDisplay,
- "isdefault_site_name": isDefault(utils.Cfg.TeamSettings.SiteName, "Mattermost"),
- "isdefault_custom_brand_text": isDefault(*utils.Cfg.TeamSettings.CustomBrandText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_BRAND_TEXT),
- "isdefault_custom_description_text": isDefault(*utils.Cfg.TeamSettings.CustomDescriptionText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT),
- "isdefault_user_status_away_timeout": isDefault(*utils.Cfg.TeamSettings.UserStatusAwayTimeout, model.TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT),
- "restrict_private_channel_manage_members": *utils.Cfg.TeamSettings.RestrictPrivateChannelManageMembers,
- "enable_X_to_leave_channels_from_LHS": *utils.Cfg.TeamSettings.EnableXToLeaveChannelsFromLHS,
- "experimental_town_square_is_read_only": *utils.Cfg.TeamSettings.ExperimentalTownSquareIsReadOnly,
+ "enable_user_creation": cfg.TeamSettings.EnableUserCreation,
+ "enable_team_creation": cfg.TeamSettings.EnableTeamCreation,
+ "restrict_team_invite": *cfg.TeamSettings.RestrictTeamInvite,
+ "restrict_public_channel_creation": *cfg.TeamSettings.RestrictPublicChannelCreation,
+ "restrict_private_channel_creation": *cfg.TeamSettings.RestrictPrivateChannelCreation,
+ "restrict_public_channel_management": *cfg.TeamSettings.RestrictPublicChannelManagement,
+ "restrict_private_channel_management": *cfg.TeamSettings.RestrictPrivateChannelManagement,
+ "restrict_public_channel_deletion": *cfg.TeamSettings.RestrictPublicChannelDeletion,
+ "restrict_private_channel_deletion": *cfg.TeamSettings.RestrictPrivateChannelDeletion,
+ "enable_open_server": *cfg.TeamSettings.EnableOpenServer,
+ "enable_custom_brand": *cfg.TeamSettings.EnableCustomBrand,
+ "restrict_direct_message": *cfg.TeamSettings.RestrictDirectMessage,
+ "max_notifications_per_channel": *cfg.TeamSettings.MaxNotificationsPerChannel,
+ "enable_confirm_notifications_to_channel": *cfg.TeamSettings.EnableConfirmNotificationsToChannel,
+ "max_users_per_team": *cfg.TeamSettings.MaxUsersPerTeam,
+ "max_channels_per_team": *cfg.TeamSettings.MaxChannelsPerTeam,
+ "teammate_name_display": *cfg.TeamSettings.TeammateNameDisplay,
+ "isdefault_site_name": isDefault(cfg.TeamSettings.SiteName, "Mattermost"),
+ "isdefault_custom_brand_text": isDefault(*cfg.TeamSettings.CustomBrandText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_BRAND_TEXT),
+ "isdefault_custom_description_text": isDefault(*cfg.TeamSettings.CustomDescriptionText, model.TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT),
+ "isdefault_user_status_away_timeout": isDefault(*cfg.TeamSettings.UserStatusAwayTimeout, model.TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT),
+ "restrict_private_channel_manage_members": *cfg.TeamSettings.RestrictPrivateChannelManageMembers,
+ "enable_X_to_leave_channels_from_LHS": *cfg.TeamSettings.EnableXToLeaveChannelsFromLHS,
+ "experimental_town_square_is_read_only": *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly,
})
SendDiagnostic(TRACK_CONFIG_CLIENT_REQ, map[string]interface{}{
- "android_latest_version": utils.Cfg.ClientRequirements.AndroidLatestVersion,
- "android_min_version": utils.Cfg.ClientRequirements.AndroidMinVersion,
- "desktop_latest_version": utils.Cfg.ClientRequirements.DesktopLatestVersion,
- "desktop_min_version": utils.Cfg.ClientRequirements.DesktopMinVersion,
- "ios_latest_version": utils.Cfg.ClientRequirements.IosLatestVersion,
- "ios_min_version": utils.Cfg.ClientRequirements.IosMinVersion,
+ "android_latest_version": cfg.ClientRequirements.AndroidLatestVersion,
+ "android_min_version": cfg.ClientRequirements.AndroidMinVersion,
+ "desktop_latest_version": cfg.ClientRequirements.DesktopLatestVersion,
+ "desktop_min_version": cfg.ClientRequirements.DesktopMinVersion,
+ "ios_latest_version": cfg.ClientRequirements.IosLatestVersion,
+ "ios_min_version": cfg.ClientRequirements.IosMinVersion,
})
SendDiagnostic(TRACK_CONFIG_SQL, map[string]interface{}{
- "driver_name": *utils.Cfg.SqlSettings.DriverName,
- "trace": utils.Cfg.SqlSettings.Trace,
- "max_idle_conns": *utils.Cfg.SqlSettings.MaxIdleConns,
- "max_open_conns": *utils.Cfg.SqlSettings.MaxOpenConns,
- "data_source_replicas": len(utils.Cfg.SqlSettings.DataSourceReplicas),
- "data_source_search_replicas": len(utils.Cfg.SqlSettings.DataSourceSearchReplicas),
- "query_timeout": *utils.Cfg.SqlSettings.QueryTimeout,
+ "driver_name": *cfg.SqlSettings.DriverName,
+ "trace": cfg.SqlSettings.Trace,
+ "max_idle_conns": *cfg.SqlSettings.MaxIdleConns,
+ "max_open_conns": *cfg.SqlSettings.MaxOpenConns,
+ "data_source_replicas": len(cfg.SqlSettings.DataSourceReplicas),
+ "data_source_search_replicas": len(cfg.SqlSettings.DataSourceSearchReplicas),
+ "query_timeout": *cfg.SqlSettings.QueryTimeout,
})
SendDiagnostic(TRACK_CONFIG_LOG, map[string]interface{}{
- "enable_console": utils.Cfg.LogSettings.EnableConsole,
- "console_level": utils.Cfg.LogSettings.ConsoleLevel,
- "enable_file": utils.Cfg.LogSettings.EnableFile,
- "file_level": utils.Cfg.LogSettings.FileLevel,
- "enable_webhook_debugging": utils.Cfg.LogSettings.EnableWebhookDebugging,
- "isdefault_file_format": isDefault(utils.Cfg.LogSettings.FileFormat, ""),
- "isdefault_file_location": isDefault(utils.Cfg.LogSettings.FileLocation, ""),
+ "enable_console": cfg.LogSettings.EnableConsole,
+ "console_level": cfg.LogSettings.ConsoleLevel,
+ "enable_file": cfg.LogSettings.EnableFile,
+ "file_level": cfg.LogSettings.FileLevel,
+ "enable_webhook_debugging": cfg.LogSettings.EnableWebhookDebugging,
+ "isdefault_file_format": isDefault(cfg.LogSettings.FileFormat, ""),
+ "isdefault_file_location": isDefault(cfg.LogSettings.FileLocation, ""),
})
SendDiagnostic(TRACK_CONFIG_PASSWORD, map[string]interface{}{
- "minimum_length": *utils.Cfg.PasswordSettings.MinimumLength,
- "lowercase": *utils.Cfg.PasswordSettings.Lowercase,
- "number": *utils.Cfg.PasswordSettings.Number,
- "uppercase": *utils.Cfg.PasswordSettings.Uppercase,
- "symbol": *utils.Cfg.PasswordSettings.Symbol,
+ "minimum_length": *cfg.PasswordSettings.MinimumLength,
+ "lowercase": *cfg.PasswordSettings.Lowercase,
+ "number": *cfg.PasswordSettings.Number,
+ "uppercase": *cfg.PasswordSettings.Uppercase,
+ "symbol": *cfg.PasswordSettings.Symbol,
})
SendDiagnostic(TRACK_CONFIG_FILE, map[string]interface{}{
- "enable_public_links": utils.Cfg.FileSettings.EnablePublicLink,
- "driver_name": *utils.Cfg.FileSettings.DriverName,
- "amazon_s3_ssl": *utils.Cfg.FileSettings.AmazonS3SSL,
- "amazon_s3_sse": *utils.Cfg.FileSettings.AmazonS3SSE,
- "amazon_s3_signv2": *utils.Cfg.FileSettings.AmazonS3SignV2,
- "amazon_s3_trace": *utils.Cfg.FileSettings.AmazonS3Trace,
- "max_file_size": *utils.Cfg.FileSettings.MaxFileSize,
- "enable_file_attachments": *utils.Cfg.FileSettings.EnableFileAttachments,
- "enable_mobile_upload": *utils.Cfg.FileSettings.EnableMobileUpload,
- "enable_mobile_download": *utils.Cfg.FileSettings.EnableMobileDownload,
+ "enable_public_links": cfg.FileSettings.EnablePublicLink,
+ "driver_name": *cfg.FileSettings.DriverName,
+ "amazon_s3_ssl": *cfg.FileSettings.AmazonS3SSL,
+ "amazon_s3_sse": *cfg.FileSettings.AmazonS3SSE,
+ "amazon_s3_signv2": *cfg.FileSettings.AmazonS3SignV2,
+ "amazon_s3_trace": *cfg.FileSettings.AmazonS3Trace,
+ "max_file_size": *cfg.FileSettings.MaxFileSize,
+ "enable_file_attachments": *cfg.FileSettings.EnableFileAttachments,
+ "enable_mobile_upload": *cfg.FileSettings.EnableMobileUpload,
+ "enable_mobile_download": *cfg.FileSettings.EnableMobileDownload,
})
SendDiagnostic(TRACK_CONFIG_EMAIL, map[string]interface{}{
- "enable_sign_up_with_email": utils.Cfg.EmailSettings.EnableSignUpWithEmail,
- "enable_sign_in_with_email": *utils.Cfg.EmailSettings.EnableSignInWithEmail,
- "enable_sign_in_with_username": *utils.Cfg.EmailSettings.EnableSignInWithUsername,
- "require_email_verification": utils.Cfg.EmailSettings.RequireEmailVerification,
- "send_email_notifications": utils.Cfg.EmailSettings.SendEmailNotifications,
- "email_notification_contents_type": *utils.Cfg.EmailSettings.EmailNotificationContentsType,
- "enable_smtp_auth": *utils.Cfg.EmailSettings.EnableSMTPAuth,
- "connection_security": utils.Cfg.EmailSettings.ConnectionSecurity,
- "send_push_notifications": *utils.Cfg.EmailSettings.SendPushNotifications,
- "push_notification_contents": *utils.Cfg.EmailSettings.PushNotificationContents,
- "enable_email_batching": *utils.Cfg.EmailSettings.EnableEmailBatching,
- "email_batching_buffer_size": *utils.Cfg.EmailSettings.EmailBatchingBufferSize,
- "email_batching_interval": *utils.Cfg.EmailSettings.EmailBatchingInterval,
- "isdefault_feedback_name": isDefault(utils.Cfg.EmailSettings.FeedbackName, ""),
- "isdefault_feedback_email": isDefault(utils.Cfg.EmailSettings.FeedbackEmail, ""),
- "isdefault_feedback_organization": isDefault(*utils.Cfg.EmailSettings.FeedbackOrganization, model.EMAIL_SETTINGS_DEFAULT_FEEDBACK_ORGANIZATION),
- "skip_server_certificate_verification": *utils.Cfg.EmailSettings.SkipServerCertificateVerification,
+ "enable_sign_up_with_email": cfg.EmailSettings.EnableSignUpWithEmail,
+ "enable_sign_in_with_email": *cfg.EmailSettings.EnableSignInWithEmail,
+ "enable_sign_in_with_username": *cfg.EmailSettings.EnableSignInWithUsername,
+ "require_email_verification": cfg.EmailSettings.RequireEmailVerification,
+ "send_email_notifications": cfg.EmailSettings.SendEmailNotifications,
+ "email_notification_contents_type": *cfg.EmailSettings.EmailNotificationContentsType,
+ "enable_smtp_auth": *cfg.EmailSettings.EnableSMTPAuth,
+ "connection_security": cfg.EmailSettings.ConnectionSecurity,
+ "send_push_notifications": *cfg.EmailSettings.SendPushNotifications,
+ "push_notification_contents": *cfg.EmailSettings.PushNotificationContents,
+ "enable_email_batching": *cfg.EmailSettings.EnableEmailBatching,
+ "email_batching_buffer_size": *cfg.EmailSettings.EmailBatchingBufferSize,
+ "email_batching_interval": *cfg.EmailSettings.EmailBatchingInterval,
+ "isdefault_feedback_name": isDefault(cfg.EmailSettings.FeedbackName, ""),
+ "isdefault_feedback_email": isDefault(cfg.EmailSettings.FeedbackEmail, ""),
+ "isdefault_feedback_organization": isDefault(*cfg.EmailSettings.FeedbackOrganization, model.EMAIL_SETTINGS_DEFAULT_FEEDBACK_ORGANIZATION),
+ "skip_server_certificate_verification": *cfg.EmailSettings.SkipServerCertificateVerification,
})
SendDiagnostic(TRACK_CONFIG_RATE, map[string]interface{}{
- "enable_rate_limiter": *utils.Cfg.RateLimitSettings.Enable,
- "vary_by_remote_address": utils.Cfg.RateLimitSettings.VaryByRemoteAddr,
- "per_sec": *utils.Cfg.RateLimitSettings.PerSec,
- "max_burst": *utils.Cfg.RateLimitSettings.MaxBurst,
- "memory_store_size": *utils.Cfg.RateLimitSettings.MemoryStoreSize,
- "isdefault_vary_by_header": isDefault(utils.Cfg.RateLimitSettings.VaryByHeader, ""),
+ "enable_rate_limiter": *cfg.RateLimitSettings.Enable,
+ "vary_by_remote_address": cfg.RateLimitSettings.VaryByRemoteAddr,
+ "per_sec": *cfg.RateLimitSettings.PerSec,
+ "max_burst": *cfg.RateLimitSettings.MaxBurst,
+ "memory_store_size": *cfg.RateLimitSettings.MemoryStoreSize,
+ "isdefault_vary_by_header": isDefault(cfg.RateLimitSettings.VaryByHeader, ""),
})
SendDiagnostic(TRACK_CONFIG_PRIVACY, map[string]interface{}{
- "show_email_address": utils.Cfg.PrivacySettings.ShowEmailAddress,
- "show_full_name": utils.Cfg.PrivacySettings.ShowFullName,
+ "show_email_address": cfg.PrivacySettings.ShowEmailAddress,
+ "show_full_name": cfg.PrivacySettings.ShowFullName,
})
SendDiagnostic(TRACK_CONFIG_THEME, map[string]interface{}{
- "enable_theme_selection": *utils.Cfg.ThemeSettings.EnableThemeSelection,
- "isdefault_default_theme": isDefault(*utils.Cfg.ThemeSettings.DefaultTheme, model.TEAM_SETTINGS_DEFAULT_TEAM_TEXT),
- "allow_custom_themes": *utils.Cfg.ThemeSettings.AllowCustomThemes,
- "allowed_themes": len(utils.Cfg.ThemeSettings.AllowedThemes),
+ "enable_theme_selection": *cfg.ThemeSettings.EnableThemeSelection,
+ "isdefault_default_theme": isDefault(*cfg.ThemeSettings.DefaultTheme, model.TEAM_SETTINGS_DEFAULT_TEAM_TEXT),
+ "allow_custom_themes": *cfg.ThemeSettings.AllowCustomThemes,
+ "allowed_themes": len(cfg.ThemeSettings.AllowedThemes),
})
SendDiagnostic(TRACK_CONFIG_OAUTH, map[string]interface{}{
- "enable_gitlab": utils.Cfg.GitLabSettings.Enable,
- "enable_google": utils.Cfg.GoogleSettings.Enable,
- "enable_office365": utils.Cfg.Office365Settings.Enable,
+ "enable_gitlab": cfg.GitLabSettings.Enable,
+ "enable_google": cfg.GoogleSettings.Enable,
+ "enable_office365": cfg.Office365Settings.Enable,
})
SendDiagnostic(TRACK_CONFIG_SUPPORT, map[string]interface{}{
- "isdefault_terms_of_service_link": isDefault(*utils.Cfg.SupportSettings.TermsOfServiceLink, model.SUPPORT_SETTINGS_DEFAULT_TERMS_OF_SERVICE_LINK),
- "isdefault_privacy_policy_link": isDefault(*utils.Cfg.SupportSettings.PrivacyPolicyLink, model.SUPPORT_SETTINGS_DEFAULT_PRIVACY_POLICY_LINK),
- "isdefault_about_link": isDefault(*utils.Cfg.SupportSettings.AboutLink, model.SUPPORT_SETTINGS_DEFAULT_ABOUT_LINK),
- "isdefault_help_link": isDefault(*utils.Cfg.SupportSettings.HelpLink, model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK),
- "isdefault_report_a_problem_link": isDefault(*utils.Cfg.SupportSettings.ReportAProblemLink, model.SUPPORT_SETTINGS_DEFAULT_REPORT_A_PROBLEM_LINK),
- "isdefault_support_email": isDefault(*utils.Cfg.SupportSettings.SupportEmail, model.SUPPORT_SETTINGS_DEFAULT_SUPPORT_EMAIL),
+ "isdefault_terms_of_service_link": isDefault(*cfg.SupportSettings.TermsOfServiceLink, model.SUPPORT_SETTINGS_DEFAULT_TERMS_OF_SERVICE_LINK),
+ "isdefault_privacy_policy_link": isDefault(*cfg.SupportSettings.PrivacyPolicyLink, model.SUPPORT_SETTINGS_DEFAULT_PRIVACY_POLICY_LINK),
+ "isdefault_about_link": isDefault(*cfg.SupportSettings.AboutLink, model.SUPPORT_SETTINGS_DEFAULT_ABOUT_LINK),
+ "isdefault_help_link": isDefault(*cfg.SupportSettings.HelpLink, model.SUPPORT_SETTINGS_DEFAULT_HELP_LINK),
+ "isdefault_report_a_problem_link": isDefault(*cfg.SupportSettings.ReportAProblemLink, model.SUPPORT_SETTINGS_DEFAULT_REPORT_A_PROBLEM_LINK),
+ "isdefault_support_email": isDefault(*cfg.SupportSettings.SupportEmail, model.SUPPORT_SETTINGS_DEFAULT_SUPPORT_EMAIL),
})
SendDiagnostic(TRACK_CONFIG_LDAP, map[string]interface{}{
- "enable": *utils.Cfg.LdapSettings.Enable,
- "connection_security": *utils.Cfg.LdapSettings.ConnectionSecurity,
- "skip_certificate_verification": *utils.Cfg.LdapSettings.SkipCertificateVerification,
- "sync_interval_minutes": *utils.Cfg.LdapSettings.SyncIntervalMinutes,
- "query_timeout": *utils.Cfg.LdapSettings.QueryTimeout,
- "max_page_size": *utils.Cfg.LdapSettings.MaxPageSize,
- "isdefault_first_name_attribute": isDefault(*utils.Cfg.LdapSettings.FirstNameAttribute, model.LDAP_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE),
- "isdefault_last_name_attribute": isDefault(*utils.Cfg.LdapSettings.LastNameAttribute, model.LDAP_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE),
- "isdefault_email_attribute": isDefault(*utils.Cfg.LdapSettings.EmailAttribute, model.LDAP_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE),
- "isdefault_username_attribute": isDefault(*utils.Cfg.LdapSettings.UsernameAttribute, model.LDAP_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE),
- "isdefault_nickname_attribute": isDefault(*utils.Cfg.LdapSettings.NicknameAttribute, model.LDAP_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE),
- "isdefault_id_attribute": isDefault(*utils.Cfg.LdapSettings.IdAttribute, model.LDAP_SETTINGS_DEFAULT_ID_ATTRIBUTE),
- "isdefault_position_attribute": isDefault(*utils.Cfg.LdapSettings.PositionAttribute, model.LDAP_SETTINGS_DEFAULT_POSITION_ATTRIBUTE),
- "isdefault_login_field_name": isDefault(*utils.Cfg.LdapSettings.LoginFieldName, model.LDAP_SETTINGS_DEFAULT_LOGIN_FIELD_NAME),
+ "enable": *cfg.LdapSettings.Enable,
+ "connection_security": *cfg.LdapSettings.ConnectionSecurity,
+ "skip_certificate_verification": *cfg.LdapSettings.SkipCertificateVerification,
+ "sync_interval_minutes": *cfg.LdapSettings.SyncIntervalMinutes,
+ "query_timeout": *cfg.LdapSettings.QueryTimeout,
+ "max_page_size": *cfg.LdapSettings.MaxPageSize,
+ "isdefault_first_name_attribute": isDefault(*cfg.LdapSettings.FirstNameAttribute, model.LDAP_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE),
+ "isdefault_last_name_attribute": isDefault(*cfg.LdapSettings.LastNameAttribute, model.LDAP_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE),
+ "isdefault_email_attribute": isDefault(*cfg.LdapSettings.EmailAttribute, model.LDAP_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE),
+ "isdefault_username_attribute": isDefault(*cfg.LdapSettings.UsernameAttribute, model.LDAP_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE),
+ "isdefault_nickname_attribute": isDefault(*cfg.LdapSettings.NicknameAttribute, model.LDAP_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE),
+ "isdefault_id_attribute": isDefault(*cfg.LdapSettings.IdAttribute, model.LDAP_SETTINGS_DEFAULT_ID_ATTRIBUTE),
+ "isdefault_position_attribute": isDefault(*cfg.LdapSettings.PositionAttribute, model.LDAP_SETTINGS_DEFAULT_POSITION_ATTRIBUTE),
+ "isdefault_login_field_name": isDefault(*cfg.LdapSettings.LoginFieldName, model.LDAP_SETTINGS_DEFAULT_LOGIN_FIELD_NAME),
})
SendDiagnostic(TRACK_CONFIG_COMPLIANCE, map[string]interface{}{
- "enable": *utils.Cfg.ComplianceSettings.Enable,
- "enable_daily": *utils.Cfg.ComplianceSettings.EnableDaily,
+ "enable": *cfg.ComplianceSettings.Enable,
+ "enable_daily": *cfg.ComplianceSettings.EnableDaily,
})
SendDiagnostic(TRACK_CONFIG_LOCALIZATION, map[string]interface{}{
- "default_server_locale": *utils.Cfg.LocalizationSettings.DefaultServerLocale,
- "default_client_locale": *utils.Cfg.LocalizationSettings.DefaultClientLocale,
- "available_locales": *utils.Cfg.LocalizationSettings.AvailableLocales,
+ "default_server_locale": *cfg.LocalizationSettings.DefaultServerLocale,
+ "default_client_locale": *cfg.LocalizationSettings.DefaultClientLocale,
+ "available_locales": *cfg.LocalizationSettings.AvailableLocales,
})
SendDiagnostic(TRACK_CONFIG_SAML, map[string]interface{}{
- "enable": *utils.Cfg.SamlSettings.Enable,
- "verify": *utils.Cfg.SamlSettings.Verify,
- "encrypt": *utils.Cfg.SamlSettings.Encrypt,
- "isdefault_first_name_attribute": isDefault(*utils.Cfg.SamlSettings.FirstNameAttribute, model.SAML_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE),
- "isdefault_last_name_attribute": isDefault(*utils.Cfg.SamlSettings.LastNameAttribute, model.SAML_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE),
- "isdefault_email_attribute": isDefault(*utils.Cfg.SamlSettings.EmailAttribute, model.SAML_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE),
- "isdefault_username_attribute": isDefault(*utils.Cfg.SamlSettings.UsernameAttribute, model.SAML_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE),
- "isdefault_nickname_attribute": isDefault(*utils.Cfg.SamlSettings.NicknameAttribute, model.SAML_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE),
- "isdefault_locale_attribute": isDefault(*utils.Cfg.SamlSettings.LocaleAttribute, model.SAML_SETTINGS_DEFAULT_LOCALE_ATTRIBUTE),
- "isdefault_position_attribute": isDefault(*utils.Cfg.SamlSettings.PositionAttribute, model.SAML_SETTINGS_DEFAULT_POSITION_ATTRIBUTE),
- "isdefault_login_button_text": isDefault(*utils.Cfg.SamlSettings.LoginButtonText, model.USER_AUTH_SERVICE_SAML_TEXT),
+ "enable": *cfg.SamlSettings.Enable,
+ "verify": *cfg.SamlSettings.Verify,
+ "encrypt": *cfg.SamlSettings.Encrypt,
+ "isdefault_first_name_attribute": isDefault(*cfg.SamlSettings.FirstNameAttribute, model.SAML_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE),
+ "isdefault_last_name_attribute": isDefault(*cfg.SamlSettings.LastNameAttribute, model.SAML_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE),
+ "isdefault_email_attribute": isDefault(*cfg.SamlSettings.EmailAttribute, model.SAML_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE),
+ "isdefault_username_attribute": isDefault(*cfg.SamlSettings.UsernameAttribute, model.SAML_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE),
+ "isdefault_nickname_attribute": isDefault(*cfg.SamlSettings.NicknameAttribute, model.SAML_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE),
+ "isdefault_locale_attribute": isDefault(*cfg.SamlSettings.LocaleAttribute, model.SAML_SETTINGS_DEFAULT_LOCALE_ATTRIBUTE),
+ "isdefault_position_attribute": isDefault(*cfg.SamlSettings.PositionAttribute, model.SAML_SETTINGS_DEFAULT_POSITION_ATTRIBUTE),
+ "isdefault_login_button_text": isDefault(*cfg.SamlSettings.LoginButtonText, model.USER_AUTH_SERVICE_SAML_TEXT),
})
SendDiagnostic(TRACK_CONFIG_CLUSTER, map[string]interface{}{
- "enable": *utils.Cfg.ClusterSettings.Enable,
- "use_ip_address": *utils.Cfg.ClusterSettings.UseIpAddress,
- "use_experimental_gossip": *utils.Cfg.ClusterSettings.UseExperimentalGossip,
- "read_only_config": *utils.Cfg.ClusterSettings.ReadOnlyConfig,
+ "enable": *cfg.ClusterSettings.Enable,
+ "use_ip_address": *cfg.ClusterSettings.UseIpAddress,
+ "use_experimental_gossip": *cfg.ClusterSettings.UseExperimentalGossip,
+ "read_only_config": *cfg.ClusterSettings.ReadOnlyConfig,
})
SendDiagnostic(TRACK_CONFIG_METRICS, map[string]interface{}{
- "enable": *utils.Cfg.MetricsSettings.Enable,
- "block_profile_rate": *utils.Cfg.MetricsSettings.BlockProfileRate,
+ "enable": *cfg.MetricsSettings.Enable,
+ "block_profile_rate": *cfg.MetricsSettings.BlockProfileRate,
})
SendDiagnostic(TRACK_CONFIG_NATIVEAPP, map[string]interface{}{
- "isdefault_app_download_link": isDefault(*utils.Cfg.NativeAppSettings.AppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_APP_DOWNLOAD_LINK),
- "isdefault_android_app_download_link": isDefault(*utils.Cfg.NativeAppSettings.AndroidAppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_ANDROID_APP_DOWNLOAD_LINK),
- "isdefault_iosapp_download_link": isDefault(*utils.Cfg.NativeAppSettings.IosAppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_IOS_APP_DOWNLOAD_LINK),
+ "isdefault_app_download_link": isDefault(*cfg.NativeAppSettings.AppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_APP_DOWNLOAD_LINK),
+ "isdefault_android_app_download_link": isDefault(*cfg.NativeAppSettings.AndroidAppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_ANDROID_APP_DOWNLOAD_LINK),
+ "isdefault_iosapp_download_link": isDefault(*cfg.NativeAppSettings.IosAppDownloadLink, model.NATIVEAPP_SETTINGS_DEFAULT_IOS_APP_DOWNLOAD_LINK),
})
SendDiagnostic(TRACK_CONFIG_WEBRTC, map[string]interface{}{
- "enable": *utils.Cfg.WebrtcSettings.Enable,
- "isdefault_stun_uri": isDefault(*utils.Cfg.WebrtcSettings.StunURI, model.WEBRTC_SETTINGS_DEFAULT_STUN_URI),
- "isdefault_turn_uri": isDefault(*utils.Cfg.WebrtcSettings.TurnURI, model.WEBRTC_SETTINGS_DEFAULT_TURN_URI),
+ "enable": *cfg.WebrtcSettings.Enable,
+ "isdefault_stun_uri": isDefault(*cfg.WebrtcSettings.StunURI, model.WEBRTC_SETTINGS_DEFAULT_STUN_URI),
+ "isdefault_turn_uri": isDefault(*cfg.WebrtcSettings.TurnURI, model.WEBRTC_SETTINGS_DEFAULT_TURN_URI),
})
SendDiagnostic(TRACK_CONFIG_ANALYTICS, map[string]interface{}{
- "isdefault_max_users_for_statistics": isDefault(*utils.Cfg.AnalyticsSettings.MaxUsersForStatistics, model.ANALYTICS_SETTINGS_DEFAULT_MAX_USERS_FOR_STATISTICS),
+ "isdefault_max_users_for_statistics": isDefault(*cfg.AnalyticsSettings.MaxUsersForStatistics, model.ANALYTICS_SETTINGS_DEFAULT_MAX_USERS_FOR_STATISTICS),
})
SendDiagnostic(TRACK_CONFIG_ANNOUNCEMENT, map[string]interface{}{
- "enable_banner": *utils.Cfg.AnnouncementSettings.EnableBanner,
- "isdefault_banner_color": isDefault(*utils.Cfg.AnnouncementSettings.BannerColor, model.ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_COLOR),
- "isdefault_banner_text_color": isDefault(*utils.Cfg.AnnouncementSettings.BannerTextColor, model.ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_TEXT_COLOR),
- "allow_banner_dismissal": *utils.Cfg.AnnouncementSettings.AllowBannerDismissal,
+ "enable_banner": *cfg.AnnouncementSettings.EnableBanner,
+ "isdefault_banner_color": isDefault(*cfg.AnnouncementSettings.BannerColor, model.ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_COLOR),
+ "isdefault_banner_text_color": isDefault(*cfg.AnnouncementSettings.BannerTextColor, model.ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_TEXT_COLOR),
+ "allow_banner_dismissal": *cfg.AnnouncementSettings.AllowBannerDismissal,
})
SendDiagnostic(TRACK_CONFIG_ELASTICSEARCH, map[string]interface{}{
- "isdefault_connection_url": isDefault(*utils.Cfg.ElasticsearchSettings.ConnectionUrl, model.ELASTICSEARCH_SETTINGS_DEFAULT_CONNECTION_URL),
- "isdefault_username": isDefault(*utils.Cfg.ElasticsearchSettings.Username, model.ELASTICSEARCH_SETTINGS_DEFAULT_USERNAME),
- "isdefault_password": isDefault(*utils.Cfg.ElasticsearchSettings.Password, model.ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD),
- "enable_indexing": *utils.Cfg.ElasticsearchSettings.EnableIndexing,
- "enable_searching": *utils.Cfg.ElasticsearchSettings.EnableSearching,
- "sniff": *utils.Cfg.ElasticsearchSettings.Sniff,
- "post_index_replicas": *utils.Cfg.ElasticsearchSettings.PostIndexReplicas,
- "post_index_shards": *utils.Cfg.ElasticsearchSettings.PostIndexShards,
- "isdefault_index_prefix": isDefault(*utils.Cfg.ElasticsearchSettings.IndexPrefix, model.ELASTICSEARCH_SETTINGS_DEFAULT_INDEX_PREFIX),
+ "isdefault_connection_url": isDefault(*cfg.ElasticsearchSettings.ConnectionUrl, model.ELASTICSEARCH_SETTINGS_DEFAULT_CONNECTION_URL),
+ "isdefault_username": isDefault(*cfg.ElasticsearchSettings.Username, model.ELASTICSEARCH_SETTINGS_DEFAULT_USERNAME),
+ "isdefault_password": isDefault(*cfg.ElasticsearchSettings.Password, model.ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD),
+ "enable_indexing": *cfg.ElasticsearchSettings.EnableIndexing,
+ "enable_searching": *cfg.ElasticsearchSettings.EnableSearching,
+ "sniff": *cfg.ElasticsearchSettings.Sniff,
+ "post_index_replicas": *cfg.ElasticsearchSettings.PostIndexReplicas,
+ "post_index_shards": *cfg.ElasticsearchSettings.PostIndexShards,
+ "isdefault_index_prefix": isDefault(*cfg.ElasticsearchSettings.IndexPrefix, model.ELASTICSEARCH_SETTINGS_DEFAULT_INDEX_PREFIX),
})
SendDiagnostic(TRACK_CONFIG_PLUGIN, map[string]interface{}{
- "enable_jira": pluginSetting("jira", "enabled", false),
+ "enable_jira": pluginSetting(&cfg.PluginSettings, "jira", "enabled", false),
})
SendDiagnostic(TRACK_CONFIG_DATA_RETENTION, map[string]interface{}{
- "enable_message_deletion": *utils.Cfg.DataRetentionSettings.EnableMessageDeletion,
- "enable_file_deletion": *utils.Cfg.DataRetentionSettings.EnableFileDeletion,
- "message_retention_days": *utils.Cfg.DataRetentionSettings.MessageRetentionDays,
- "file_retention_days": *utils.Cfg.DataRetentionSettings.FileRetentionDays,
- "deletion_job_start_time": *utils.Cfg.DataRetentionSettings.DeletionJobStartTime,
+ "enable_message_deletion": *cfg.DataRetentionSettings.EnableMessageDeletion,
+ "enable_file_deletion": *cfg.DataRetentionSettings.EnableFileDeletion,
+ "message_retention_days": *cfg.DataRetentionSettings.MessageRetentionDays,
+ "file_retention_days": *cfg.DataRetentionSettings.FileRetentionDays,
+ "deletion_job_start_time": *cfg.DataRetentionSettings.DeletionJobStartTime,
})
}
diff --git a/app/diagnostics_test.go b/app/diagnostics_test.go
index a7d879a7f..842322e9c 100644
--- a/app/diagnostics_test.go
+++ b/app/diagnostics_test.go
@@ -12,6 +12,9 @@ import (
"testing"
"time"
+ "github.com/stretchr/testify/assert"
+
+ "github.com/mattermost/mattermost-server/model"
"github.com/mattermost/mattermost-server/utils"
)
@@ -29,21 +32,15 @@ func newTestServer() (chan string, *httptest.Server) {
}
func TestPluginSetting(t *testing.T) {
- before := utils.Cfg.PluginSettings.Plugins
- utils.Cfg.PluginSettings.Plugins = map[string]interface{}{
- "test": map[string]string{
- "foo": "bar",
+ settings := &model.PluginSettings{
+ Plugins: map[string]interface{}{
+ "test": map[string]string{
+ "foo": "bar",
+ },
},
}
- defer func() {
- utils.Cfg.PluginSettings.Plugins = before
- }()
- if pluginSetting("test", "foo", "asd") != "bar" {
- t.Fatal()
- }
- if pluginSetting("test", "qwe", "asd") != "asd" {
- t.Fatal()
- }
+ assert.Equal(t, "bar", pluginSetting(settings, "test", "foo", "asd"))
+ assert.Equal(t, "asd", pluginSetting(settings, "test", "qwe", "asd"))
}
func TestDiagnostics(t *testing.T) {
diff --git a/model/config.go b/model/config.go
index 80d982e5e..fb36a2fa9 100644
--- a/model/config.go
+++ b/model/config.go
@@ -541,6 +541,14 @@ type Config struct {
PluginSettings PluginSettings
}
+func (o *Config) Clone() *Config {
+ var ret Config
+ if err := json.Unmarshal([]byte(o.ToJson()), &ret); err != nil {
+ panic(err)
+ }
+ return &ret
+}
+
func (o *Config) ToJson() string {
b, err := json.Marshal(o)
if err != nil {