Files
mattermost/server
3bd85d0a93 [MM-69882] Decouple pin/unpin from ServiceSettings.PostEditTimeLimit (#38296)
* Decouple pin/unpin from ServiceSettings.PostEditTimeLimit

The post edit time limit was extended to cover pin state, so posts older
than ServiceSettings.PostEditTimeLimit could no longer be pinned or
unpinned. Scope the limit back to post content (message, props, files) so
pin state can always be changed, and drop the pinning no-op shortcut that
only existed to soften that check.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Broaden pin/unpin time limit coverage

Derive the content check from PostPatch.IsEmpty so a future patch field is
gated by the edit time limit by default, and cover the helper directly, an
unpin through updatePost, a non-author pin/unpin, and EditAt staying put.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Guard PostPatch.IsEmpty against silently exempting new fields

The edit time limit now derives its content check from IsEmpty, so cover
IsEmpty directly next to the struct it mirrors and assert the field count
so a new field cannot slip past unnoticed.

Co-authored-by: mattermost-code <matty-code@mattermost.com>

* Tighten test comments and use reflect.TypeFor

Co-authored-by: mattermost-code <matty-code@mattermost.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: mattermost-code <matty-code@mattermost.com>
2026-09-04 16:24:29 +03:00
..
…
…
…
…