[MM-54730] Don't use old hardcoded rule for validating imported posts (#25823)

* don't use old hardcoded rule for validating imported posts

* fix http verb in doc

* Use client config

* Handle local mode

* E2E tests

* Enforce default if unable to use real limit

* Unit tests

* Fix tests

* Use model.PostMessageMaxRunesV2 as lower default

* Update direct post message length validation

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: streamer45 <cstcld91@gmail.com>
Этот коммит содержится в:
Julien Tant
2024-04-19 10:45:32 -07:00
коммит произвёл GitHub
родитель 389990ebe5
Коммит ffc08858cf
9 изменённых файлов: 404 добавлений и 16 удалений

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

@@ -68,6 +68,8 @@ type Validator struct { //nolint:govet
directPosts uint64
emojis map[string]ImportFileInfo
maxPostSize int
start time.Time
end time.Time
@@ -96,6 +98,7 @@ func NewValidator(
serverChannels map[ChannelTeam]*model.Channel,
serverUsers map[string]*model.User,
serverEmails map[string]*model.User,
maxPostSize int,
) *Validator {
v := &Validator{
archiveName: name,
@@ -118,6 +121,8 @@ func NewValidator(
channels: map[ChannelTeam]ImportFileInfo{},
users: map[string]ImportFileInfo{},
emojis: map[string]ImportFileInfo{},
maxPostSize: maxPostSize,
}
v.loadFromServer()
@@ -722,7 +727,7 @@ func (v *Validator) validateUser(info ImportFileInfo, line imports.LineImportDat
func (v *Validator) validatePost(info ImportFileInfo, line imports.LineImportData) (err error) {
ivErr := validateNotNil(info, "post", line.Post, func(data imports.PostImportData) *ImportValidationError {
appErr := imports.ValidatePostImportData(&data, model.PostMessageMaxRunesV1)
appErr := imports.ValidatePostImportData(&data, v.maxPostSize)
if appErr != nil {
return &ImportValidationError{
ImportFileInfo: info,
@@ -854,7 +859,7 @@ func (v *Validator) validateDirectChannel(info ImportFileInfo, line imports.Line
func (v *Validator) validateDirectPost(info ImportFileInfo, line imports.LineImportData) (err error) {
ivErr := validateNotNil(info, "direct_post", line.DirectPost, func(data imports.DirectPostImportData) *ImportValidationError {
appErr := imports.ValidateDirectPostImportData(&data, model.PostMessageMaxRunesV1)
appErr := imports.ValidateDirectPostImportData(&data, v.maxPostSize)
if appErr != nil {
return &ImportValidationError{
ImportFileInfo: info,