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

20875 Коммитов

Автор SHA1 Сообщение Дата
Christopher Poile
b33a7e362f [MM-63556] mmctl: Add compliance export download cmd (#30576)
* add mmctl compliance export download command and tests

- Introduced `ComplianceExportDownloadCmd` to facilitate downloading compliance export files.
- Implemented the `DownloadComplianceExport` method in the Client interface for handling file downloads.
- Added unit tests for the download command, covering successful downloads, error handling for non-existent jobs, and retries on failure.
- Included end-to-end tests to validate the command's functionality.
- Updated documentation to include usage examples and options for the new command.

* don't know why this was left out

* PR comments

* adjust test for new retry logic

* refactored download fn for compliance_export and export

* fix test due to fixed logic

* docs
2025-06-24 16:27:54 -04:00
Jesse Hallam
60a747f975 Always require signatures for prepackaged plugins (#31785)
* Always require signatures for prepackaged plugins

We have always required signatures for packages installed via the marketplace -- whether remotely satisfied, or sourced from the prepackaged plugin cache.

However, prepackaged plugins discovered and automatically installed on
startup did not require a valid signature. Since we already ship
signatures for all Mattermost-authored prepackaged plugins, it's easy to
simply start requiring this.

Distributions of Mattermost that bundle their own prepackaged plugins
will have to include their own signatures. This in turn requires
distributing and configuring Mattermost with a custom public key via
`PluginSettings.SignaturePublicKeyFiles`.

Note that this enhanced security is neutered with a deployment that uses
a file-based `config.json`, as any exploit that allows appending to the
prepackaged plugins cache probably also allows modifying `config.json`
to register a new public key. A [database-based
config](https://docs.mattermost.com/configure/configuration-in-your-database.html)
is recommended.

Finally, we already support an optional setting
`PluginSettings.RequirePluginSignature` to always require a plugin
signature, although this effectively disables plugin uploads and
requires extra effort to deploy the corresponding signature. In
environments where only prepackaged plugins are used, this setting is
ideal.

Fixes: https://mattermost.atlassian.net/browse/MM-64627

* setup dev key, expect no plugins if sig fails

* Fix shadow variable errors in test helpers

Pre-declare signaturePublicKey variable in loops to avoid shadowing
the outer err variable used in error handling.

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

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

* Replace PrepackagedPlugin.Signature with SignaturePath for memory efficiency

- Changed PrepackagedPlugin struct to use SignaturePath string instead of Signature []byte
- Updated buildPrepackagedPlugin to use file descriptor instead of reading signature into memory
- Modified plugin installation and persistence to read from signature file paths
- Updated all tests to check SignaturePath instead of Signature field
- Removed unused bytes import from plugin.go

This change reduces memory usage by storing file paths instead of signature data
in memory while maintaining the same security verification functionality.

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

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-24 15:11:02 -03:00
Christopher Poile
e60f878090 [MM-63555] mmctl: Add compliance export show and cancel cmds (#30569)
* add compliance export cancel command and tests

- Introduced `ComplianceExportCancelCmd` to allow cancellation of compliance export jobs.
- Implemented unit tests for the cancellation command, covering successful cancellation, error handling for non-existent jobs, and cancellation in non-cancellable states.
- Added end-to-end tests to validate the command's functionality in the E2E test suite.

* mmctl docs

* clean up example text; remove unneeded getJob

* fix tests

* fix tests, again.

* prefer hyphen for command naming

* update docs
2025-06-24 12:26:43 -04:00
Christopher Poile
9399398e04 [MM-62888] mmctl: Add compliance export list cmd (#30914)
* Add compliance export list cmd and tests

- Introduced `ListComplianceExports` method in the Client interface to retrieve compliance export jobs.
- Added `compliance_export` command with subcommand `list` for listing compliance export jobs, including pagination options.
- Implemented end-to-end and unit tests for the compliance export listing functionality.

* Add docs for mmctl

* fix test typo

* added paging, tested

* update docs with better desc (how it's sorted)

* simplified, reusing job call

* add show cmd, unit tests, e2e tests

* update mmctl docs
2025-06-24 11:20:40 -04:00
Nick Misasi
5d7c3b52ed [CLD-9285] Add server version and edition (team vs ent) to ExternalLink component (#31783)
* Add server version and edition (team vs ent) to ExternalLink component

* fix: add proper Redux state setup to datetime_input.test.tsx

The test was failing because the useExternalLink hook (added in this PR)
requires access to config and license Redux state, but the datetime_input
tests weren't providing proper initial state. This caused components to
receive undefined values from Redux selectors, potentially affecting
locale/date formatting behavior.

Added defaultState with proper config and license structure to match
what other tests in the codebase use, ensuring consistent test environment.

Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>

* Revert to master

* Revert to master

---------

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Nick Misasi <nickmisasi@users.noreply.github.com>
2025-06-24 11:11:19 -04:00
lindalumitchell
1148bea55b Remove extra Tab keypress that was causing test failure (#31817)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-23 20:43:14 +00:00
Pablo Vélez
b3bc4b6f1b Mm 64299 disable guest invite in abac channels (#31139)
* MM-64299 - disable guest invite in abac channels

* filter the abac channel list for guest

* add filter in the back-end too

* add proper translation

* simplify the condition for enforced channels and add the unit tests

* enhance validation for not inviting guest users when abac enforced channel

* add missing translation

* add value to empty translation

* prevent showing the channel name if abac protected
2025-06-23 18:17:55 +02:00
Hosted Weblate
82c1de2b4b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/
2025-06-23 13:41:23 +00:00
Serhii Khomiuk
645c5bc370 Translated using Weblate (Ukrainian)
Currently translated at 96.6% (6116 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-06-23 13:41:23 +00:00
MArtin Johnson
fb9d5e4999 Translated using Weblate (Swedish)
Currently translated at 99.9% (6324 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/sv/
2025-06-23 13:41:23 +00:00
MArtin Johnson
8ab3f64436 Translated using Weblate (Swedish)
Currently translated at 99.8% (2703 of 2706 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/sv/
2025-06-23 13:41:23 +00:00
Son Le
d7d3ddba67 Translated using Weblate (Vietnamese)
Currently translated at 72.9% (4616 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/vi/
2025-06-23 13:41:23 +00:00
Son Le
fee3bed292 Translated using Weblate (Vietnamese)
Currently translated at 83.1% (2250 of 2706 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/vi/
2025-06-23 13:41:23 +00:00
Son Le
45e1341f57 Translated using Weblate (Vietnamese)
Currently translated at 72.9% (4615 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/vi/
2025-06-23 13:41:23 +00:00
Manuela Silva
3525bf33b0 Translated using Weblate (Portuguese)
Currently translated at 14.4% (915 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pt/
2025-06-23 13:41:23 +00:00
Manuela Silva
086bfca1e6 Translated using Weblate (Portuguese)
Currently translated at 0.5% (15 of 2706 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pt/
2025-06-23 13:41:23 +00:00
Ekaterine Papava
c5cca277ce Translated using Weblate (Georgian)
Currently translated at 8.6% (548 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ka/
2025-06-23 13:41:23 +00:00
Tom De Moor
602067453f Translated using Weblate (Dutch)
Currently translated at 99.9% (6327 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nl/
2025-06-23 13:41:23 +00:00
Tom De Moor
1b32700244 Translated using Weblate (Dutch)
Currently translated at 99.9% (2704 of 2706 strings)

Translation: Mattermost/server
Translate-URL: https://translate.mattermost.com/projects/mattermost/server/nl/
2025-06-23 13:41:23 +00:00
Manuela Silva
eccb014a9a Translated using Weblate (Portuguese)
Currently translated at 12.3% (779 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pt/
2025-06-23 13:41:23 +00:00
Serhii Khomiuk
a0cc456984 Translated using Weblate (Ukrainian)
Currently translated at 96.5% (6113 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/uk/
2025-06-23 13:41:23 +00:00
Manuela Silva
cf74639d01 Translated using Weblate (Portuguese)
Currently translated at 9.3% (593 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pt/
2025-06-23 13:41:23 +00:00
Ekaterine Papava
205a8c9a04 Translated using Weblate (Georgian)
Currently translated at 8.6% (546 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ka/
2025-06-23 13:41:23 +00:00
jprusch
3d72cae0e8 Translated using Weblate (German)
Currently translated at 100.0% (6330 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/de/
2025-06-23 13:41:23 +00:00
Manuela Silva
1e12714a59 Translated using Weblate (Portuguese)
Currently translated at 9.0% (576 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pt/
2025-06-23 13:41:23 +00:00
master7
a2a68792ea Translated using Weblate (Polish)
Currently translated at 100.0% (6330 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/
2025-06-23 13:41:23 +00:00
Frank Paul Silye
21c69135cb Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.8% (5242 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-23 13:41:23 +00:00
Ekaterine Papava
ba40f4ff8f Translated using Weblate (Georgian)
Currently translated at 8.6% (545 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ka/
2025-06-23 13:41:23 +00:00
kaakaa
4aa748649c Translated using Weblate (Japanese)
Currently translated at 100.0% (6330 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
2025-06-23 13:41:23 +00:00
Frank Paul Silye
0f4097d665 Translated using Weblate (Norwegian Bokmål)
Currently translated at 82.7% (5241 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/
2025-06-23 13:41:23 +00:00
kaakaa
d80f9b74e5 Translated using Weblate (Japanese)
Currently translated at 99.1% (6276 of 6330 strings)

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ja/
2025-06-23 13:41:23 +00:00
Hosted Weblate
84506745b6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Mattermost/webapp
Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/
2025-06-23 13:41:23 +00:00
Christopher Speller
48ec3fe473 Update Agents plugin to v1.2.0 (#31806)
* Update Agents plugin to v1.2.0

* Rename
2025-06-23 04:57:28 -07:00
Ibrahim Serdar Acikgoz
2526a6c0bd add missing shadows to the access control policies page (#31364) 2025-06-23 11:03:01 +02:00
Christopher Poile
250e39c85f [MM-64603] LDAP Wizard: UX and Copy (#31649)
* improve pluralization

* changes to highlight strings -- might want to revert after review

* fix custom setting styling

* blank commit

* broken e2e test

* add css comments
2025-06-20 14:26:05 -04:00
Maria A Nunez
ec7c1e6d51 Removed NPS plugin (#31418)
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-20 11:39:29 -04:00
Pablo Vélez
5fc74cd401 MM-64330 - filter abac users in channel invite (#31219)
* MM-64330 - filter abac users in channel invite

* implement cursor functionality for abac user filtering

* remove unnecessary comments

* refactor the backend implementation simplifying the functions

* refactor api to use opts as parameters, rename function

* add missing translation

* remove unnecesary test code

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-20 10:53:14 +02:00
Jesse Hallam
968550d275 Fix undefined variable 'opts' in getSidebarCategoriesT function (#31815)
The function was trying to use 'opts.TeamID' but 'opts' was not defined in the function scope. Changed it to use the 'teamId' parameter which is properly defined in the function signature.

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

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 01:27:28 +00:00
Jesse Hallam
dcc72c4c61 MM-63728: simplify category store with graphql gone (#30848)
* move category permissions to api

In https://github.com/mattermost/mattermost/pull/21038, we changed the
behaviour of the channel category store to filter out deleted teams and
teams for which the user was not a member. This was necessary in part
due to querying multiple teams via GraphQL.

With GraphQL no longer supported, let's move the permissions to the
API instead and remove the `JOIN` to filter out teams in the store.

Note that we /don't/ prevent access to deleted teams. For better or
worse, deleted teams remain largely accessible via other API endpoints
anyway.

* remove ExcludeTeam / GraphQL support

As part of https://github.com/mattermost/mattermost/pull/20353, we added
`ExcludeTeam` and the associated logic to support a GraphQL API.

With GraphQL no longer supported, let's simplify this logic and remove
the filtering and associated complexity.

* Fix shadow variable declaration in channel_store_categories.go

Fixed golangci-lint error by reusing existing err variable rather than shadowing it.

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

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

* fix build issue

* Remove SidebarCategorySearchOpts and simplify API to use teamID string

Per code review feedback, this change removes the SidebarCategorySearchOpts
struct entirely since the Type field was never used in the store implementation.
All methods now accept a simple teamID string parameter instead of the struct,
which simplifies the API and makes the code clearer.

Changes:
- Remove SidebarCategorySearchOpts struct from store.go
- Update CreateInitialSidebarCategories and GetSidebarCategories signatures
- Update all implementations (sqlstore, retrylayer, timerlayer, mocks)
- Update all callers to pass teamID string directly
- Clean up unused imports

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

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-06-20 00:48:12 +00:00
Ben Schumacher
b69412d23f [MM-64347] Enable System Console UI for AuditSettings by default (#31118)
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
2025-06-19 20:18:46 +02:00
Rajat Dabade
f980a538c5 Updated board prepackaged version to v9.1.4 (#31771) 2025-06-19 23:43:18 +05:30
Harrison Healey
ebb68759ad Remove old avatar variants of status icons (#31768)
These predate the "circle with a check"-style status indicators we've
used for years now.
2025-06-19 10:11:35 -04:00
Harrison Healey
a3f60f797b MM-63725 Populate multiple sidebar categories at once whenever possible (#31064)
* Remove redundant sidebar tests from TestChannelStore

* MM-63725 Refactor to split out getOrphanedSidebarChannels

* MM-63725 Populate multiple sidebar categories at once whenever possible

* Fix shadowing
2025-06-19 10:09:36 -04:00
Devin Binnie
3bd0a2ad91 [MM-64639] Fix styling on thread item header (#31807) 2025-06-19 09:44:46 -04:00
Ben Schumacher
2661f77cea [MM-64502] Fix errcheck linter errors in channel_test.go (#31309)
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-19 14:13:45 +02:00
Ben Schumacher
cfc1503d62 [MM-63355] Add AuthData to mmctl user search output (#30478) 2025-06-19 11:52:16 +02:00
Ben Schumacher
04a60b6609 [MM-57693] Add schema dump to Support Packet (#31162)
Co-authored-by: Claude <noreply@anthropic.com>
2025-06-19 11:33:55 +02:00
Arya Khochare
824d3b8259 Fixed errcheck issues in server/channels/app/file_test.go (#28941)
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
2025-06-19 11:20:23 +02:00
Elias Nahum
731cc1fb5f Add server settings to further lock files on mobile (#30949)
* Add server settings to further lock files on mobile

* fix format with prettier

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Saturnino Abril <5334504+saturninoabril@users.noreply.github.com>
2025-06-19 09:37:32 +02:00
Devin Binnie
b1f609e6b8 [MM-61582][MM-61605][MM-61622][MM-63029][MM-63026][MM-63059] Mobile View accessibility fixes (#31328)
* [MM-61582] Ensure textbox changes size when the window is too small

* [MM-61605] Fix clipping on menu modal in mobile view

* [MM-61622] Make mobile view RHS scrollable

* [MM-63029] Fix mobile view Browse Channels modal arrangement

* [MM-63026] Make new channel body scrollable if needed, flex to full screen on mobile view

* [MM-63059] Make Settings Modal properly responsive with flexbox for mobile view

* Fix lint

* [MM-64033] Fix mobile view for User Groups, another fix for Browse Channels

* Fix notification modal

* PR feedback

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2025-06-19 11:13:42 +05:00