Граф коммитов

20972 Коммитов

Автор SHA1 Сообщение Дата
Harshil Sharma
d1e5fdea2c Content flagging systems console settings (#31411)
* Added enable/disable setting and feature flag

* added rest of notifgication settings

* Added backend for content flagging setting and populated notification values from server side defaults

* WIP user selector

* Added common reviewers UI

* Added additonal reviewers section

* WIP

* WIP

* Team table base

* Added search in teams

* Added search in teams

* Added additional settings section

* WIP

* Inbtegrated reviewers settings

* WIP

* WIP

* Added server side validation

* cleanup

* cleanup

* [skip ci]

* Some refactoring

* type fixes

* lint fix

* test: add content flagging settings test file

* test: add comprehensive unit tests for content flagging settings

* enhanced tests

* test: add test file for content flagging additional settings

* test: add comprehensive unit tests for ContentFlaggingAdditionalSettingsSection

* Added additoonal settings test

* test: add empty test file for team reviewers section

* test: add comprehensive unit tests for TeamReviewersSection component

* test: update tests to handle async data fetching in team reviewers section

* test: add empty test file for content reviewers component

* feat: add comprehensive unit tests for ContentFlaggingContentReviewers component

* Added ContentFlaggingContentReviewersContentFlaggingContentReviewers test

* test: add notification settings test file for content flagging

* test: add comprehensive unit tests for content flagging notification settings

* Added ContentFlaggingNotificationSettingsSection tests

* test: add user profile pill test file

* test: add comprehensive unit tests for UserProfilePill component

* refactor: Replace enzyme shallow with renderWithContext in user_profile_pill tests

* Added UserProfilePill tests

* test: add empty test file for content reviewers team option

* test: add comprehensive unit tests for TeamOptionComponent

* Added TeamOptionComponent tests

* test: add empty test file for reason_option component

* test: add comprehensive unit tests for ReasonOption component

* Added ReasonOption tests

* cleanup

* Fixed i18n error

* fixed e2e test lijnt issues

* Updated test cases

* Added snaoshot

* Updated snaoshot

* lint fix

* lint fix

* review fixes

* updated snapshot

* CI

* Review fixes

* Removed an test, updated comment

* CI

* Test update
2025-07-10 17:47:16 +05:30
Ibrahim Serdar Acikgoz
254f641182 [MM-64371] Prevent WS being closed by browser due to navigation (#31367)
* prevent ws being closed by browser due to navigation

* add href back

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-07-10 11:30:54 +02:00
Cyrus
e2b6e807c4 [MM-21466] delete users cmd return err (#31191)
* refactored error managment for deleteUsersCmdF

* updated tests related to deleteUsersCmdF

* updated user_e2e_test to reflect changes made to the deleteUsersCmdF function

* Empty-Commit to retrigger workflow

* applied gofmt formating reqs to user_test.go

* added suggested changes to the deleteUsersCmdF regarding error gathering

* added requested changes regarding error aggragation on deleteUsersCmdF

* style(mmctl): removing trailing whitespace

* feat(mmctl): returning errors in deleteUserCmdF on err

* fix(mmctl): returns when err parsing args

* test(mmctl): updated tests to expect err instead of reading printer

* style: updating returned errs

* tests: updated test to reflect error change

* tests(mmctl): updated e2e DeleteUserCmd test

* Update server/cmd/mmctl/commands/user.go

Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>

* refactor: changing error to return username instead of email

* refactor: changing email to username for errors

---------

Co-authored-by: Arnaud Wanet <andrewwanet9@gmail.com>
Co-authored-by: Antonis Stamatiou <stamatiou.antonis@gmail.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2025-07-09 17:12:04 +02:00
Matthew Birtch
b42f4fbffd MM-64483 YouTube Preview UI Update (#31288)
* fix youtube thumbnails

* fix lint issues, update snapshots

* Update _videos.scss

* Update _videos.scss

* revert change to 'YouTubeVideo' to 'YoutubeVideo'

* switch back to Youtube instead of YouTube

* accessibility fixes -add focus state

* fix lint issues

* Update youtube_video.test.tsx.snap

* remove logic for delaying different aspect ratios. always use 16:9

* Update _videos.scss

* fix rounded corners

* use css variables for radius

* restore attributes from original, remove bottom margin from player to prevent vertical shift

* fix issue with margin and nested 'video-div' elements

* update class to 'video-playing'

* fix linter issues

* address copilot review feedback and remove unused css

* Update youtube_video.test.tsx

* fixed failing test

* lint issue fix

* Update youtube_video.test.tsx

* review feedback changes

* Update _videos.scss

* update test and snapshot

* fix lint issues

* add scaling button on hover state back in

* feat: Make YouTube video component strings translatable

- Add useIntl import and formatMessage usage
- Create YouTubePrefix component for internationalized prefix
- Update YouTubeThumbnail component to use translatable strings
- Add translation IDs:
  - youtube_video.play.aria_label
  - youtube_video.thumbnail.alt_text  
  - youtube_video.play_button.aria_label
  - youtube_video.type

Addresses reviewer feedback to make hardcoded strings translatable
using React Intl's useIntl hook.

Co-authored-by: Matthew Birtch <matthewbirtch@users.noreply.github.com>

* fix lint issues

* Update en.json

* Update youtube_video.test.tsx.snap

* remove youtube prefix

* fix lint issues

* Update youtube_video.test.tsx.snap

* fix lint issue

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Matthew Birtch <matthewbirtch@users.noreply.github.com>
2025-07-09 10:33:47 -04:00
Claudio Costa
47a7e62b44 Fix flaky test TestMmctlE2ESuite/TestPreferenceUpdateCmd (#33375) 2025-07-09 08:01:40 -06:00
Agniva De Sarker
c4dde3d0ab MM-64632: Fix a panic in bulk import (#33360)
We were incorrect de-referencing the channels slice
without checking for nil pointer first.

https://mattermost.atlassian.net/browse/MM-64632
```release-note
NONE
```
2025-07-09 09:37:36 +05:30
Harrison Healey
30ba6f573d MM-64681 Fix in: filter in mobile search box (#32120) 2025-07-08 14:45:28 -04:00
Harrison Healey
ad38971dd6 MM-64658 Fix handling of upload sessions (#32141)
* MM-64658 Fix handling of upload sessions

* Fix style issue
2025-07-08 16:46:00 +00:00
Harrison Healey
4b77485e8f MM-64718 Improve validation of thread follower imports (#33287)
* MM-64718 Improve validation of thread follower imports

* Add additional test cases and restucture tests
2025-07-08 11:57:48 -04:00
Harrison Healey
4bb35c5043 MM-64417 Change permissions table to use a grid for animation (#32573)
* MM-64417 Change permissions table to use a grid for animation

* Don't change padding on permissions table when animating

* Update snapshots

* Combine CSS for AdminPanel and AdminPanelTogglable

* Removed leftover reference to old CSS file

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-07-08 11:55:24 -04:00
sabril
780c893b4f upgrade playwright dependencies (#33348) 2025-07-08 23:00:48 +08:00
sabril
749f7d4d21 fix playwright test (#33353) 2025-07-08 21:58:59 +08:00
catalintomai
a8fa77f107 MM-64779: Upload type validation. (#33351) 2025-07-08 00:13:02 +02:00
Tom De Moor
f7cb74117b Translated using Weblate (Dutch)
Currently translated at 99.7% (2714 of 2720 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-07-07 18:44:34 +00:00
Tom De Moor
b4defc7aba Translated using Weblate (Dutch)
Currently translated at 99.9% (6448 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-07-07 18:44:34 +00:00
Tom De Moor
7b21a05a55 Translated using Weblate (Dutch)
Currently translated at 99.6% (6426 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-07-07 18:44:34 +00:00
MArtin Johnson
7e838d478f Translated using Weblate (Swedish)
Currently translated at 97.7% (6305 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/sv/
2025-07-07 18:44:34 +00:00
MArtin Johnson
76c5c1a686 Translated using Weblate (Swedish)
Currently translated at 99.9% (2716 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/sv/
2025-07-07 18:44:34 +00:00
Ainārs Keišs
d635c547bd Translated using Weblate (Latvian)
Currently translated at 0.3% (24 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/lv/
2025-07-07 18:44:34 +00:00
Tom De Moor
95f6b631f4 Translated using Weblate (Dutch)
Currently translated at 99.0% (6389 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-07-07 18:44:34 +00:00
Tom De Moor
e6f5f7697a Translated using Weblate (Dutch)
Currently translated at 99.9% (2716 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-07-07 18:44:34 +00:00
Frank Paul Silye
4b47779608 Translated using Weblate (Norwegian Bokmål)
Currently translated at 81.4% (5255 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-07-07 18:44:34 +00:00
jprusch
49330c48e7 Translated using Weblate (German)
Currently translated at 100.0% (6450 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
2025-07-07 18:44:34 +00:00
jprusch
082c72e36c Translated using Weblate (German)
Currently translated at 100.0% (2718 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/de/
2025-07-07 18:44:34 +00:00
Manuela Silva
9dd29b134f Translated using Weblate (Portuguese)
Currently translated at 5.1% (140 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pt/
2025-07-07 18:44:34 +00:00
Manuela Silva
6db8b5e6a2 Translated using Weblate (Portuguese)
Currently translated at 2.5% (69 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pt/
2025-07-07 18:44:34 +00:00
Manuela Silva
1171bde078 Translated using Weblate (Portuguese)
Currently translated at 1.6% (46 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pt/
2025-07-07 18:44:34 +00:00
Serhii Khomiuk
dad0795c67 Translated using Weblate (Ukrainian)
Currently translated at 94.7% (6114 of 6450 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-07-07 18:44:34 +00:00
Serhii Khomiuk
b9cf283ac7 Translated using Weblate (Ukrainian)
Currently translated at 97.6% (2655 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/uk/
2025-07-07 18:44:34 +00:00
Martin Mičuda
3eae025ccd Translated using Weblate (Czech)
Currently translated at 97.8% (2659 of 2718 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/cs/
2025-07-07 18:44:34 +00:00
Harshil Sharma
bfbfff276d Added patch channel API doc for channel banner (#32100)
* Added patch channel API doc for channel banner

* Fixed typo
2025-07-07 10:41:29 +05:30
Ibrahim Serdar Acikgoz
5e76a1091c Fix bad link to ABAC Policy Edit page from Channel Management page (#33044) 2025-07-04 16:04:35 +02:00
Claudio Costa
4a7aeae861 [MM-64663] Fix potential panic in mmctl ldap job show command (#32575)
* Fix potential panic in `mmctl ldap job show` command

* fix examples and docs

---------

Co-authored-by: Christopher Poile <cpoile@gmail.com>
2025-07-04 07:48:17 -06:00
Claudio Costa
10b6784968 Skip code coverage generation on cherry-pick PRs (#33068)
* Skip code coverage generation on cherry-picks

* Skip upload step for webapp coverage for cherry-picks
2025-07-04 07:48:06 -06:00
unified-ci-app[bot]
cbf685b2f4 Update latest minor version to 10.11.0 (#33309)
Automatic Merge
2025-07-04 14:52:01 +03:00
Christopher Speller
c11df2ff7a Update Agents plugin to v1.2.4 (#33273) 2025-07-04 08:28:48 +03:00
Harrison Healey
5b6320b7dc MM-62744 Change how custom URLs are autolinked to fix remote user at-mentions (#32080)
* Stop explicitly passing autocompleteUrlSchemes into text formatting code

This is the first part of changing how autocompleteUrlSchemes works so
that it can be moved to be part of the parser like in mobile instead of
happening in the renderer.

I'm not a fan of using the global store directly in utils/markdown, but
this seems like the only way to have this apply to all the Markdown
that's rendered in various helpers throughout the app. Ideally, we'd
have some getMarkdownParser selector and a hook which provides the
config, but that's a future improvement to make"

* MM-62744 Move URL filtering to the Markdown parser instead of the renderer

MM-62744 is caused by two things:

1. URL autolinking takes place in the Markdown parser which occurs
   before at-mention parsing which (despite the "parsing" part) happens
   in the Markdown renderer in the web app.
2. The autolinking in marked is very aggressive and identifies anything
   that looks like some:text as a link.

Those lead to remote mentions like `@user:server` being incorrectly
parsed by Markdown as a link to `user:server`. It isn't renderered as a
link because the URL filtering logic in the Markdown parser blocks that,
but at that point, the Markdown renderer won't check if it's an
at-mention.

By moving the URL filtering to occur earlier, like it does in the mobile
app, the Markdown code won't autolink `@user:server` (unless the server
has `user` configured as a custom URL scheme for some reason), so it's
free to be turned into an at-mention by the renderer code.

* MM-62744 Ensure various regexes and features support remote mentions

* Update marked back to master
2025-07-03 11:05:12 -04:00
Sven Hüster
0d4c2b72f1 Improve clarity of channel notification limit messages (#32160)
* Improve clarity of channel notification limit messages

- Update user-facing messages to explain performance reasoning and provide guidance
- Enhance admin setting descriptions to be more informative about user experience  
- Change admin setting title to better reflect purpose

Fixes #32159

Co-authored-by: Sven Hüster <svelle@users.noreply.github.com>

* Update webapp/channels/src/i18n/en.json

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>

* Update server/i18n/en.json

Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>

* Update server/i18n/en.json

* Update server/i18n/en.json

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Sven Hüster <svelle@users.noreply.github.com>
Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2025-07-03 09:33:17 -04:00
Christopher Poile
55eb63a367 [MM-64735] Add defensive fallback for userHasReadPermissionOnSomeResources (#33072)
* Add defensive fallback for userHasReadPermissionOnSomeResources

When called with a string instead of an object, the function now falls back
to checking a single resource permission instead of failing.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Revert "Add defensive fallback for userHasReadPermissionOnSomeResources"

This reverts commit f9c32bc3e2598467e7c8a520319ac5ae49135cbf.

* simpler fix -- remove string as a possible parameter

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-03 08:47:09 -04:00
yasser khan
5cd3a3f745 Fix(cypress): Fix e2e failing on master (#32494) 2025-07-03 10:19:58 +05:30
Harrison Healey
6004d15f9e MM-61595 Use dedicated popover component for post actions menu when empty (#31656)
* Link post actions menu button to existing menu

That menu isn't fully accessible because it uses the old Menu widget,
but the readout will at least be correct when tabbing through the post
controls.

* MM-61595 Use dedicated popover component for post actions menu when empty

* Update unit tests

* Split out ActionsMenuEmptyPopover to start of separate Popover component
2025-07-02 16:23:22 -04:00
Christopher Poile
9ad0f1e070 [MM-64708] Fix custom data retention policy navigation (#33011)
Fix navigation to custom data retention policy form by correcting permission
checking functions. The routes for creating and editing custom data retention
policies were using userHasReadPermissionOnSomeResources() with a single
string resource key, causing permission checks to fail and routes to be
hidden.

Changed both custom_policy_form and custom_policy_form_edit routes to use
userHasReadPermissionOnResource() instead, making them consistent with
other working data retention routes.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-02 14:03:49 -04:00
Maria A Nunez
466e3c3502 Fix accessibility issue with dropdown options (#30715)
* Added getOptionLabel to fix dropdown accessibility for options

* Fix tests

* Revert unnecessary cases

* Other unnecessary case

* Linting

* PR Feedback

* Cleanup

* Cursor assisted - unit tests

* Linting

* Linting i18n

* Fix test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-07-02 13:19:48 -04:00
M-ZubairAhmed
0d9c4810f4 [MM-64618] ResizeObserver callback fires after component unmount during channel switching (#32668) 2025-07-02 22:30:17 +05:30
Jesse Hallam
d2188ce1dd remove spurious user limits log (#33038)
Only log a warning when the created user exceeds the `MaxUserLimits` if
`MaxUsersLimit > 0`. This was showing up spuriously on licensed servers
for which no limit applied.

Note that this is distinct from blocking user creation past
`MaxHardUsersLimit`.
2025-07-02 13:29:48 -03:00
Jesse Hallam
ebe03c1d45 Channel Store: No SELECT * (#32167)
* Replace SELECT * with explicit column lists in channel store

Migrates channel_store.go away from SELECT * patterns to explicit column
lists for better performance, maintainability, and schema safety.

- Replace GetPinnedPosts raw SQL with query builder using postSliceColumns()
- Replace "cc.*" in group channel search with channelSliceColumns()
- Replace GetChannelsBatchForIndexing raw SQL with query builder
- Replace channel member and team queries with respective column helpers
- Use SelectBuilder helper instead of manual ToSql() calls

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Replace SELECT * with COUNT(*) in user_test.go

Replaces unnecessary SELECT * queries with SELECT COUNT(*) in
TestPermanentDeleteUser bot count verification. Only needs to check
the count of bots, not retrieve full bot records.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-02 15:35:54 +00:00
Nick Misasi
fb9b05b764 Add preview specific UTM parameters (#32509)
Automatic Merge
2025-07-02 17:52:01 +03:00
Pablo Vélez
e99aa4e430 MM-64428 - user tag invite filtering (#31226)
* MM-64428 - user tag invite filtering

* fix lint issues

* remove unnecesary line

* update translations and skip mysql tests

* simplify the solution so in abac channels the invitation link is never shown

* finish clean up of unnecessary code

* clean up and remove no longer necessary translations

* remove leftover props and remove no longer needed tests after simplification

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-07-02 14:55:02 +02:00
Pablo Vélez
f1893e4837 MM-64707 - abac channels should not list user groups in invite modal (#32574)
* MM-64707 - abac channels should not list user groups in invite modal

* fix linter
2025-07-02 12:30:46 +02:00
Ibrahim Serdar Acikgoz
0809ce7a62 [MM-64630] Fix an issue where multiple channels can't be removed from policies (#32164)
* Fix an issue where multiple channels can't be removed from policies

* actually fix the issue

* use hardcoded limit

* simplify removal
2025-07-01 20:48:57 +02:00