528 Коммитов

Автор SHA1 Сообщение Дата
Caleb Roseland
818225dffe MM-52981, MM-53559: Streamlined in-product marketplace (#24311) 2023-08-25 14:39:25 -05:00
Mattermod
5edba9c019 Update minor version to 9.0.0 (#24364)
Automatic Merge
2023-08-24 21:57:35 +03:00
Christopher Poile
69c11cfe14 MM-53924 - Implement push notifications plugin hook and plugin api method (#24350)
* Revert "MM-52804 - Implement SendPushNotification plugin api method (#24273)"

This reverts commit 8418eefb75.

* Revert "MM-53924 - Implement NotificationWillBePushed plugin hook (#24263)"

This reverts commit f13a531bca.

* implement NotificationWillBePushed plugin hook

* implement SendPushNotification plugin api method

* move where we're setting post and channel type

* fix comment

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-08-24 12:33:53 -04:00
Ben Schumacher
2108517fae [MM-54014] Run tests in public/... (#24320) 2023-08-22 12:48:53 +02:00
Ben Schumacher
ef89e9601c [MM-54183] Remove deprecated Manifest.RequiredConfig field (#24319) 2023-08-22 10:39:27 +02:00
Agniva De Sarker
dd73c2af0f MM-53879: Fix recursive loading of license (#24200)
There were multiple problems with loading of a license.

1. It was called from inside app/server.go and app/platform/service.go. The first one wasn't really needed anymore, so we remove it.

2. To make loading of a license work across a cluster, the license load action was attached along with the `InvalidateAllCachesSkipSend` method. But the problem with that was that it would even get called in the caller node as well, putting it in a recursive loop.

```
LoadLicense -> SaveLicense -> InvalidateAllCaches -> InvalidateAllCachesSkipSend -> LoadLicense
```

To fix this, we create a dedicated loadLicense cluster event and move it away from the `InvalidateAllCachesSkipSend` method. And then from the caller side, we just trigger this action.

3. We also remove the first call to check license expiration which would load the license again. This is unnecessary because if the license is expired, server wouldn't start at all.

While here, we also make some other improvements like removing unnecessary goroutine spawning while publishing websocket events. They are already handled asynchronously, so there is no need
to create a goroutine for that.

We also remove

```
ps.ReloadConfig()
ps.InvalidateAllCaches()
```

from requestTrialLicense as they are already called from inside `*PlatformService.SaveLicense`.

And lastly, we remove the `*model.AppError` return from `*PlatformService.InvalidateAllCaches` because there was nothing to return at all.

https://mattermost.atlassian.net/browse/MM-53879

```release-note
Fix several issues with loading of a license
```
2023-08-21 20:17:16 +05:30
Ben Schumacher
f231124f2d Update to github.com/blang/semver/v4 (#24203) 2023-08-21 11:29:12 +02:00
Ben Schumacher
3ee5432664 [MM-53968] Includes mattermost-plugin-api into the mono repo (#24235)
Include https://github.com/mattermost/mattermost-plugin-api into the mono repo

Co-authored-by: Jesse Hallam <jesse.hallam@gmail.com>
Co-authored-by: Michael Kochell <mjkochell@gmail.com>
Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
Co-authored-by: Ben Schumacher <ben.schumacher@mattermost.com>
Co-authored-by: Alex Dovenmuehle <alex.dovenmuehle@mattermost.com>
Co-authored-by: Michael Kochell <6913320+mickmister@users.noreply.github.com>
Co-authored-by: Christopher Poile <cpoile@gmail.com>
Co-authored-by: İlker Göktuğ Öztürk <ilkergoktugozturk@gmail.com>
Co-authored-by: Shota Gvinepadze <wineson@gmail.com>
Co-authored-by: Ali Farooq <ali.farooq0@pm.me>
Co-authored-by: Maria A Nunez <maria.nunez@mattermost.com>
Co-authored-by: Daniel Espino García <larkox@gmail.com>
Co-authored-by: Christopher Speller <crspeller@gmail.com>
Co-authored-by: Alex Dovenmuehle <adovenmuehle@gmail.com>
Co-authored-by: Szymon Gibała <szymongib@gmail.com>
Co-authored-by: Lev <1187448+levb@users.noreply.github.com>
Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>
Co-authored-by: Agniva De Sarker <agnivade@yahoo.co.in>
Co-authored-by: Artur M. Wolff <artur.m.wolff@gmail.com>
Co-authored-by: Madhav Hugar <16546715+madhavhugar@users.noreply.github.com>
Co-authored-by: Joe <security.joe@pm.me>
Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
Co-authored-by: José Peso <trilopin@users.noreply.github.com>
2023-08-21 09:50:30 +02:00
M-ZubairAhmed
bc11b29807 Replace Gfycat with GIPHY in emoji/gif picker (#24236)
* Added the package

* design

* add styled-component alias

* add contrast ratio

* added the tab icon

* review comments

* rev comments

* key added

* key added

* trans

* Added giphy sdk test key for playwright tests config

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: maria.nunez <maria.nunez@mattermost.com>
2023-08-18 16:02:46 -04:00
Christopher Poile
8418eefb75 MM-52804 - Implement SendPushNotification plugin api method (#24273)
* add SendPushNotification plugin api method

* lint; add testing.Short bc of the sleep

* add interface and generated layers

* add fields to PluginPushNotification; generate mocks

* SendPushNotification -> SendPluginPushNotification; improved comments

* more comments; fix test

* send api.ctx
2023-08-18 13:05:26 -04:00
Christopher Poile
f13a531bca MM-53924 - Implement NotificationWillBePushed plugin hook (#24263)
* add NotificationWillBePushed hook

* mocks

* use a struct for hook parameters; simplify number of parameters sent across RPC

* missing wg.Wait

* change to a bool return value
2023-08-18 12:01:50 -04:00
Christopher Poile
7b0b0d8609 MM-53764 - Fix: Improve limits on Opengraph Data Cache (#24177)
* enforce strict opengraph cache entry size limit

* move json marshalling and error checking into parsOpenGraphMetadata fn

* fix linting

* fix potential nil deref

* Revert "fix potential nil deref"

This reverts commit 095bcd496e9b8d97ca63d3a99e2e46eec58ef7ae.

* Revert "fix linting"

This reverts commit f3e1f7b27634ca0567fd0fef01ac23f5e39009a7.

* Revert "move json marshalling and error checking into parsOpenGraphMetadata fn"

This reverts commit ba9a1e13b0fb9d4579077b7b37666e950a5fb6ed.

* Revert "enforce strict opengraph cache entry size limit"

This reverts commit d1de4a8fa40e58ac85c85f66de27ec5aca884b18.

* remove /opengraph api endpoint

* i18n

* removing unneeded action and reducer
2023-08-17 18:23:39 -04:00
Scott Bishel
faea229921 MM-53688 Remove boards dataretention (#24231)
* remove boards data-retention

* remove another variable

* update snapshots, to remove boards

* need to keep config settings until focalboard is updated

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-08-15 08:27:45 -06:00
Jesús Espino
5f7482e541 Remove remote users from the license counting and explicitly dissallow them to log in (#22582)
* Making all the counts aware of Remote users

* Disable login for remote users

* Adding tests for login remote_users error

* Adding tests for the store

* Adding frontend part of not counting remote users in the license

* Addressing PR review comment

* Adding the new ExternaUserId field to users

* Running make migrations-extract

* Running make app-layers and make gen-serialized

* Revert "Adding the new ExternaUserId field to users"

This reverts commit 12e5fd518962a16cdbdb8964179b6cd8e915f230.

* Adding GetUserByRemoteID methods

* Adding needed migration for users

* i18n-extract

* Fixing postgres increase remote user id field size migration up and down

* run make gen-serialized

* Removing migration code

* Not count remote users as part of the cloud pricing

* Add the cloud subscription when a user gets promote from remote to not-remote

* Fixing merge problems

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-08-14 17:54:10 +02:00
Saturnino Abril
a93a01fa8f MM-54004 migrate HeaderFooterNotLoggedIn as functional component (#24244)
* chore: MM-54004 migrate HeaderFooterNotLoggedIn as functional component

* fix about and HA links
2023-08-14 06:48:19 -04:00
Daniel Espino García
e9b3afecc2 Mark category as read (#24003)
* Mark category as read

* Fix lint and test

* Fix tests

* Fix test and remove wrong aria

* Address server issues and add mark as read for unreads

* Missing changes

* Fix tests

* fix tests

* Add confirmation popup to mark as read category

* Always use viewMultipleChannels and other fixes

* Remove unneeded code

* Fix test

* Address feedback

* Address feedback

* Fix tests

* Fix test

* Fix tests

* Update aria-haspopup depending on the number of channels to mark as viewed

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-08-14 10:01:02 +02:00
Agniva De Sarker
45a14e23a9 MM-53228: Adding schema version to cluster info (#24209)
With the schema version available, a job can query for
the cluster info to confirm whether or not all nodes
in a cluster are upgraded to the same version or not.

This will help it in determining whether to start
the job or not.

https://mattermost.atlassian.net/browse/MM-53228

```release-note
NONE
```
2023-08-10 09:40:49 +05:30
Ben Schumacher
122dbaf373 [MM-40531] Remove deprecated ManifestExecutables struct (#24212) 2023-08-09 10:36:12 +02:00
Ben Schumacher
7ecf6c0b5c [MM-53943] Remove deprecated UserAuth.Password field (#24213) 2023-08-09 10:35:53 +02:00
Jesse Hallam
8372267739 MM-53355: tidy up plugins (#24194)
* remove feature flag managed plugins

* remove unneeded plugin blocklist

* remove unnecessary wrappers

* documentation and logging improvements

* avoid use of global logger
* leverage wrapped loggers (e.g. consistently log `plugin_id`)
* promote some logs from `Debug` to `Info` for better visibility.
* extract installPluginToFilestore
* rename some variables for consistency / clarity

* make generated
2023-08-08 18:29:57 -03:00
Jesse Hallam
885802eae7 Updated API Code Samples (#24141)
* api: remove PHP code samples

* api: remove Curl code samples

* api: remove Go code samples

* link out to marketplace exclusively for community-built drivers

* absolute path to V4_SRC

* programmatically extract x-codeSamples

* initial batch of examples

* Update api/server/main.go

Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>

* Update api/server/main.go

Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>

* Update api/server/main.go

Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>

* updated examples

---------

Co-authored-by: Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
2023-08-03 12:45:10 -03:00
Elias Nahum
aa88f8bf59 Add read_channel_content permission (#24118)
* Add read_channel_content permission

* fix tests

* update system console default permissions per role

* add read_channel_content to e2e defaultRolesPermissions

* Migration to include custom roles

* change deprecated isNotExactRole for isNotRole

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-31 09:12:53 -04:00
Ibrahim Serdar Acikgoz
2a4de2eecc Revert "Add read_channel_content permission (#24018)" (#24114)
This reverts commit a19ce047ba.
2023-07-25 13:17:58 +03:00
Harshil Sharma
26617fcbdc Remove insights (#23952)
* removed server side

* Updated store layer

* unused import

* Updated autogenerated code template

* Updated tests

* lint fix

* unused translations

* webapp side

* Updated i18n

* lint fix:

* type fix

* Updated snapshots

* Removed insights from API specs

* updated e2e

* Updated e2e tests

* Updated e2e tests

* Removed insights tests

* Removed Insights as possible channel to load in sidebar from test

* Removed more insights tests

* More e2e fixed

* More cleanup

* Lint

* More cleanup in client4 and boards api

* More cleanup

* Fixes

* lint fix

---------

Co-authored-by: maria.nunez <maria.nunez@mattermost.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-25 12:34:38 +05:30
Agniva De Sarker
6d6e589c11 MM-53747: Create job to encode older image paths (#24073)
Bifrost now encodes all image paths. Due to this
one-way translation, we need to encode all the older
image paths as well.

After this is done, we can remove the double-lookup.

https://mattermost.atlassian.net/browse/MM-53747

```release-note
NONE
```

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-25 08:38:35 +05:30
Agniva De Sarker
29bd0c9357 Revert "MM-42810: Introduce a channel hook for a websocket event (#23812)" (#24107)
Automatic Merge
2023-07-24 19:16:57 +03:00
Elias Nahum
a19ce047ba Add read_channel_content permission (#24018)
* Add read_channel_content permission

* fix tests

* update system console default permissions per role

* add read_channel_content to e2e defaultRolesPermissions

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-24 09:37:59 -04:00
Jesse Hallam
89e65257a6 Remove command palette POC (#24044)
* Revert "POC: Cross-team recent search (#20027)"

This reverts commit aa59c28b04, preserving
a few code tidyings unrelated to the original PR.

* Revert "Add feature flag for command palette (#20011)"

This reverts commit c78c5ce3f3.
2023-07-24 10:31:06 -03:00
Harshil Sharma
f1468a1958 Renamed channel index fix migration key (#24061)
Automatic Merge
2023-07-21 23:16:56 +03:00
Julien Tant
077c16ef61 [MM-53454] Add export file settings + slash command for public link (#23915)
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-19 13:01:39 -07:00
Sinan Sonmez (Chaush)
628273d98d MM42267: Add member count in the browse channel modal (#23800)
* add base for calling the endpoint

* add endpoint and handler

* update store and layers

* call the endpoint

* align types

* update app layers

* generate mocks

* complete handler

* finish store query

* add todos

* add ui for member count

* add selector

* add a todo

* add cache layer

* optimize calls in FE

* handle invalidation of the cache

* fix go style

* fix test

* use existing channel layer count

* fix import error

* delete unnecessary code

* write tests for channel cache layer

* fix testname

* fix mocks

* fix cache layer test

* fix a test

* really fix the test

* write more tests for server

* address PR comments

* remove comment

* rename more_channels to browse_channels

* fix style

* update snapshot

* add translations

* Revert "add translations"

This reverts commit 56476a5dabe357703ef02be9a38b3e88f5c8b1e7.

* add only related translations

* address PR review points

* add test

* fix test

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-19 11:45:27 +05:30
Miguel de la Cruz
4803889158 Improves notify props validation (#24031)
* Adds the channel member notify props max runes restriction

* Fix translations
2023-07-18 17:25:11 +02:00
Miguel de la Cruz
150c6e7aef Remove boards product references (#23855)
Automatic Merge
2023-07-18 15:17:29 +03:00
Devin Binnie
823ef27d6c Revert "[MM-37984] Allow Desktop App to authenticate via external providers outside of the app on supported servers (#23795)" (#24039)
This reverts commit abdf4e58c3.
2023-07-17 10:54:53 -04:00
Agniva De Sarker
b20ef95b91 MM-42810: Introduce a channel hook for a websocket event (#23812)
Sometimes a broad distinction of just a channelID or a userID
is not enough to efficiently send a websocket event to users.

In several cases, depending on the user and channel, we might
need to modify the message. Therefore, we introduce the
concept of a channel hook that will get executed if the scope
is set to a channel. This hook can be populated at the app layer
to perform any application specific logic to the event.

Care must be taken to avoid race conditions as the passed event
is not deep copied. It is left to the user to treat it carefully.

For this issue, the main problem was that since we don't know
which users have permissions to which channels, we had to go through
_all_ members of a channel to figure that out. This was redundant
since a large portion of those users might not even be connected
at that time.

We solve this with the channel hook where we push this check
to be performed later while actually sending the event. This
reduces the computation to be done only for _connected_ users
rather than _all_ users of a channel.

The next iteration of this should be to use websocket subscriptions
to monitor exactly which users are on that channel to even
trim down that list. That is a larger initiative to be taken later.

Tested locally with a channel of 50 users. Here are rough results:
```
With PR:
patchPost 97ms
createPost 90ms

Master:
patchPost 306ms
createPost - 298ms
```

https://mattermost.atlassian.net/browse/MM-42810

```release-note
Improve  performance while sending messages
with permalinks to channels with large number of users.
```
2023-07-15 08:14:16 +05:30
Mattermod
40ff77c9c6 Update minor version to 8.1.0 (#24016)
Automatic Merge
2023-07-13 20:17:29 +03:00
Devin Binnie
abdf4e58c3 [MM-37984] Allow Desktop App to authenticate via external providers outside of the app on supported servers (#23795)
* WIP

* Add rate limiting for desktop token API

* Missing mocks

* Style fixes

* Update snapshots

* Maybe use an actual redirect link :P

* Refactoring for tests

* Add tests for server

* Fix lint issue

* Fix tests

* Fix lint

* Add front-end screen component

* Component logic

* Style changes

* Quick style fix

* Lint fixes

* Initial PR feedback

* Enable logging into the browser as well when completing the login process

* Refactor to push more logic to the other component

* Remove unnecessary helper code

* Fix i18n

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-12 09:25:05 -04:00
Devin Binnie
116728424c [MM-53124] Add optional Forgot Password custom link to override the default flow on the login page (#23831)
* [MM-53124] Add optional Forgot Password custom link to override the default flow on the login page

* Fix i18n

* Fix test

* Added the enable/disable flag

* Fix test

* Fix e2e

* Add blockable link for the Customization navigation
2023-07-11 09:04:39 -04:00
Maria A Nunez
96d3e5864f Removed Post Priority feature flag (#23735)
* Removed post priority feature flag

* linting

* Update feature_flags.go
2023-07-07 11:42:57 -04:00
Maria A Nunez
5779bd49d5 Remove Global Drafts Feature Flag (#23767)
* Remove global draft feature flag

* More removal - in progress

* Removed the rest in webapp

* Removed the rest in webapp

* Fix tests

* Update feature_flags.go

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-05 12:18:30 -04:00
Ben Cooke
bf0e0ed45a [MM-53466] Remove concurrency from data retention delete batching (#23927)
* Add TimeBetweenBatches config value for data retention

* adding feature flag for data retention concurrency
---------

Co-authored-by: Julien Tant <julien@craftyx.fr>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-07-05 11:09:03 -04:00
Jesse Hallam
8abc8ed65c MM-53358: Revert Threads Everywhere (#23882)
Remove changes related to the unshipped threads everywhere feature, including commits b8da473da7 and 9f9e19e05d.

Since a version of Playbooks shipped calling this experimental API, keep a `nil` implementation to avoid breaking compatibility. We remove the hooks altogether, but keep the numbering again to avoid breaking compatbility.

Fixes: https://mattermost.atlassian.net/browse/MM-53358
2023-06-30 15:31:25 -03:00
Agniva De Sarker
d9a28c1244 MM-52532: Fix golangci warnings for public module (#23918)
https://mattermost.atlassian.net/browse/MM-52532

```release-note
NONE
```
2023-06-30 20:12:56 +05:30
Scott Bishel
d74ee1a3da don't allow deletedAt to be set when creating user (#23914) 2023-06-30 10:10:10 -04:00
Daniel Espino García
fda5dd8468 Remove guest badge (#23825)
* Remove guest badge

* Address feedback

* Fix lint, test and i18n

* Fix test
2023-06-30 11:06:18 +02:00
Doug Lauder
9d6d8cceec Fix mismatched receiver name on method PostMetadata.Auditable (#23904) 2023-06-28 15:31:51 -04:00
Maria A Nunez
4e92dde5b3 Remove Permalink Preview Feature Flag (#23731)
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-06-27 17:42:55 -04:00
Pablo Andrés Vélez Vidal
e8349545b8 MM-53087 - remove AB test for reduced onboarding task list item (#23856) 2023-06-26 21:41:25 +02:00
Pablo Andrés Vélez Vidal
887ba95cc1 MM-53088 - remove autoshow linked board (#23783)
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-06-26 14:13:14 +02:00
Amy Blais
fcafa6211f Update version.go (#23811)
Automatic Merge
2023-06-21 15:17:28 +03:00