Automatic Merge
Этот коммит содержится в:
@@ -1767,6 +1767,7 @@ type FileSettings struct {
|
||||
Directory *string `access:"environment_file_storage,write_restrictable,cloud_restrictable"`
|
||||
EnablePublicLink *bool `access:"site_public_links,cloud_restrictable"`
|
||||
ExtractContent *bool `access:"environment_file_storage,write_restrictable"`
|
||||
ExtractContentTimeout *int `access:"environment_file_storage,write_restrictable"` // In seconds. 0 disables the timeout.
|
||||
ArchiveRecursion *bool `access:"environment_file_storage,write_restrictable"`
|
||||
PublicLinkSalt *string `access:"site_public_links,cloud_restrictable"` // telemetry: none
|
||||
InitialFont *string `access:"environment_file_storage,cloud_restrictable"` // telemetry: none
|
||||
@@ -1844,6 +1845,10 @@ func (s *FileSettings) SetDefaults(isUpdate bool) {
|
||||
s.ExtractContent = NewPointer(true)
|
||||
}
|
||||
|
||||
if s.ExtractContentTimeout == nil {
|
||||
s.ExtractContentTimeout = NewPointer(10)
|
||||
}
|
||||
|
||||
if s.ArchiveRecursion == nil {
|
||||
s.ArchiveRecursion = NewPointer(false)
|
||||
}
|
||||
@@ -4230,6 +4235,10 @@ func (s *FileSettings) isValid() *AppError {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.max_file_size.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
if *s.ExtractContentTimeout < 0 {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.extract_content_timeout.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
if !(*s.DriverName == ImageDriverLocal || *s.DriverName == ImageDriverS3) {
|
||||
return NewAppError("Config.IsValid", "model.config.is_valid.file_driver.app_error", nil, "", http.StatusBadRequest)
|
||||
}
|
||||
|
||||
@@ -296,6 +296,38 @@ func TestFileSettingsDirectoryWhitespaceValidation(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestFileSettingsExtractContentTimeout(t *testing.T) {
|
||||
t.Run("default is valid", func(t *testing.T) {
|
||||
cfg := &Config{}
|
||||
cfg.SetDefaults()
|
||||
require.NotNil(t, cfg.FileSettings.ExtractContentTimeout)
|
||||
assert.Equal(t, 10, *cfg.FileSettings.ExtractContentTimeout)
|
||||
assert.Nil(t, cfg.FileSettings.isValid())
|
||||
})
|
||||
|
||||
t.Run("zero disables the timeout and is valid", func(t *testing.T) {
|
||||
cfg := &Config{}
|
||||
cfg.SetDefaults()
|
||||
cfg.FileSettings.ExtractContentTimeout = NewPointer(0)
|
||||
assert.Nil(t, cfg.FileSettings.isValid())
|
||||
})
|
||||
|
||||
t.Run("a positive value is valid", func(t *testing.T) {
|
||||
cfg := &Config{}
|
||||
cfg.SetDefaults()
|
||||
cfg.FileSettings.ExtractContentTimeout = NewPointer(10)
|
||||
assert.Nil(t, cfg.FileSettings.isValid())
|
||||
})
|
||||
|
||||
t.Run("a negative value is rejected", func(t *testing.T) {
|
||||
cfg := &Config{}
|
||||
cfg.SetDefaults()
|
||||
cfg.FileSettings.ExtractContentTimeout = NewPointer(-1)
|
||||
err := cfg.FileSettings.isValid()
|
||||
require.NotNil(t, err)
|
||||
assert.Equal(t, "model.config.is_valid.extract_content_timeout.app_error", err.Id)
|
||||
})
|
||||
}
|
||||
func TestConfigDefaultSignatureAlgorithm(t *testing.T) {
|
||||
c1 := Config{}
|
||||
c1.SetDefaults()
|
||||
|
||||
Ссылка в новой задаче
Block a user