* added unit tests for UpdateUserCustomStatus and RemoveUserCustomStatus functions
* stylistic improvements in status endpoint tests
* linting fix
---------
Co-authored-by: Fume <contact@fumedev.com>
* MM-60222_apply filter to export csv
* get the report exporting with the filters ready
* add unit tests
* cover one more file with some tests
* style the confirm modal note
* add translations
* remove unnecessary print line
* disable export button if there is no data to export
* fix linter issues
* fix linter errors
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Split up handling of permalinks and other links in getLinkMetadata
* MM-60351 Use oEmbed for YouTube links
* Explicitly request json from the oEmbed provider
* Fix linter
* Fix type of CacheAge field
* Address feedback
Setting the flag to false never worked, and it was never
caught because there wasn't an instance when this method
was called with allowFromCache=false.
https://mattermost.atlassian.net/browse/MM-60606
```release-note
NONE
```
We sprinkle a bit of generic magic to refactor a lot
of duplicate code.
To avoid exposing unnecessary code, I duplicated the function
twice. But let me know if you have strong opinions about this.
https://mattermost.atlassian.net/browse/MM-60171
```release-note
NONE
```
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Add descriptions to test cases for getNeededAtMentionedUsernames
* MM-59854 Load users who are at-mentioned in message attachment fields
* MM-59854 Add server support for at-mentioning users in message attachment fields
* Migrate support/external_commands from JS to TS
* MM-59584 Ensure that at-mentions never show in other message attachment fields
* MM-59584 Add E2E tests for how we load users based on at mentions
* Use new E2E test helpers in other places
* Update snapshots
* Add metrics for mobile versions snapshots
* Add notifications disabled and fix lint
* Address feedback
* Verify all references to JobTypeActiveUsers
* Fix typos
* Improve platform values
* Add test and MySQL support
On user login, we were aggressively clearing the channel member
cache when it wasn't necessary. There is no channel membership
info that is changing on a user login.
Additionally, we fix some more issues with pointer passing
to the cache. It's a known problem that our value passing
style isn't consistent when we fetch items from cache.
Sometimes we pass pointer-to-pointer, sometimes it's just a
pointer. This is also the reason for https://github.com/mattermost/mattermost/pull/27830.
We fix 2 such cases where we passed pointer-to-pointer
but didn't handle the special case inside the cache.
This time, we actually fix it in the app layer instead
of the cache layer and also add a test for good measure.
https://mattermost.atlassian.net/browse/MM-60480
```release-note
NONE
```
Co-authored-by: Mattermost Build <build@mattermost.com>
* ignore bot accounts when counting deactivated users
* moved query to squirrel
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
* set is null right
* Run a different query depending on driver due to performance reasons.
---------
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
While using Redis, there is no need to invalidate
and then update the new count from the DB when
we know the exact number it is going to be incremented
or decremented by.
In that case, we can directly use Redis primitives
to update the cache and prevent yet another DB query.
To achieve this, we modify the LRU cache get/set
paths slightly to not marshal into byte slices
for *int64 values. This is needed for Redis to operate
the INCR/DECR commands.
https://mattermost.atlassian.net/browse/MM-59933
```release-note
NONE
```
Co-authored-by: Mattermost Build <build@mattermost.com>
- Update library version.
- Added MaxFlush delay to help reduce CPU usage.
- Fall back to LRU cache for the caches which use SCAN.
- Added mattermost-redis and running for all api layer
tests in Postgres.
https://mattermost.atlassian.net/browse/MM-59934
```release-note
NONE
```
We were using a mock cache provider which mixed up LRU caches
with each other. This led to incorrect unmarshalling method calls.
We fix this by using the real cache provider.
https://mattermost.atlassian.net/browse/MM-60413
```release-note
NONE
```