* Adds default team to the remote cluster entity
A new DefaultTeamId field is added to the RemoteCluster entity and its
endpoints, and used when receiving channel invites to choose in which
team to create a new channel.
This will be later extended with the ability for the system admin to
manually accept invites, choosing which team to create the channel on
each. This use case will be triggered when the DefaultTeamId field is
empty, which now simply chooses the first team it finds in the
database as a fallback.
* Fix migrations list
* Fixes channelinvite test case
* Fix i18n
* Fix migration list
* Allows creating new remote clusters without providing a password
If the endpoint receives a request with no password, it will generate
one internally and return it in the response, so the frotend can show
it to the user.
* Use a random string instead of a UUID for the generated password
* Update function name to avoid CString reference and adds assertion
* Update server/channels/utils/textgeneration.go
Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
* Extends the charset
---------
Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
* [MM-58492] Remove subsequent check for team permissions on open channels
* Removed extra check for open channel for webhooks as well
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Overall, there is no bug here. But opportunities for
improvement.
- Used the maps.Clone function.
- Handled the error while writing to the network.
https://mattermost.atlassian.net/browse/MM-59283
```release-note
NONE
```
* [MM-58492][MM-58523] Fixed some access control bugs around archived channels by replacing the permission check with HasPermissionToReadChannel
* Fix lint, add ChannelId to uploads
* Fix MMCTL tests and remove unnecessary check for the error message that doesn't work anyways
* Include channel map for getting flagged posts
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* make /ancillary a post
* remove get from client, fix tests
* remove GET for retrieving ancillary permissions
* Update permissions.yaml
* Update permissions.yaml
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* add more fields to sanitizeInput on User
* add test for user sanoitizeInput
* add more fields
* remove line, lint fix
* additional fields and sanitize update
* Update user_test.go
* remove fields that are unnecessary to check
* add check to test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Updated required role for user report page GET API
* Updated permission in error message
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Opened modal from system console
* WIP
* WIP
* WIP
* Handled saving user
* Successfully updated user based settings
* WIP
* WIP
* All settings are updating well
* Fixed modal style
* Added admin mode indicators in modal
* Added confirmation dialog
* Lint fixes
* Added license check
* Added permission check
* Fixed i18n file order
* type fix
* Updated snapshots
* Handled performance debugging setting
* Some styling tweaks
* Fixed text alighnment
* Updated license required from professional to enterprise
* Handled long user names
* review fixes
* Added manage setting option in user list page context menu
* Added loader
* Minor reordering
* Removed confirm modal
* Updated snapshots for removed modal
* Added some tests
* Lint fix
* Used new selector in user detail page
* Used new selector in user list page
* Updated tests
* Fixed an incorrect default test
* remove manage team permissions from sysconsole_write_user_management_chanels and sysconsole_write_user_management_groups
* update migrations, add unit tests
* run migrations-extract
* make updating ancillary permissions a post
* update file names
* add new api to doc, update body to just be []string
* revert moving ancillary permissions to post
* fix queries after final testing
* Update channel.go
* Update channel.go
* Update 000124_remove_manage_team_permission.up.sql
* Update 000124_remove_manage_team_permission.up.sql
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* on login add UserId and SessionId to audit's Actor field to match logout
* lint
* simplify to add only userId and sessionId
* AddToEventActor -> AddUser/SessionToEventActor
* fill in missing session data when logging the audit record
* why did it bump that? reverting.
* make modules-tidy
* trigger build
* add more context to the comment
* Add platform information for push notification metrics
* Address feedback
* Add the client platform returned by the devices to the normalize function
* Add "no platform" platform label to distinguish from unknown
* Adds Remote Cluster related API endpoints
New endpoints for the following routes are added:
- Get Remote Clusters at `GET /api/v4/remotecluster`
- Create Remote Cluster at `POST /api/v4/remotecluster`
- Accept Remote Cluster invite at `POST
/api/v4/remotecluster/accept_invite`
- Generate Remote Cluster invite at `POST
/api/v4/remotecluster/{remote_id}/generate_invite`
- Get Remote Cluster at `GET /api/v4/remotecluster/{remote_id}`
- Patch Remote Cluster at `PATCH /api/v4/remotecluster/{remote_id}`
- Delete Remote Cluster at `DELETE /api/v4/remotecluster/{remote_id}`
These endpoints are planned to be used from the system console, and
gated through the `manage_secure_connections` permission.
* Update server/channels/api4/remote_cluster_test.go
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
* Fix AppError names
---------
Co-authored-by: Doug Lauder <wiggin77@warpmail.net>
Co-authored-by: Mattermost Build <build@mattermost.com>
* update for adding multiple members
* fix unit test
* more test fixes
* add another unit test
* fix object passed by client4
* revert package-lock.json
* revert package-lock.json
* add length check
* limit size of lists in API requests
* revert package-lock
* add batching to front end
* add batching to front end
* fix bad merge
* update return type
* remove unnecessary permisssion check, add unit test
* fixes and add tests from review
* revert changes adding limits to other apis
* fixes
* clean-up from code review
* fix unit test call
* revert back to interface{}, fix unit test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* added download system logs
* download all logs
* download all logs check-lint fix
* check lint fix
* download logs api
* download logs api working
* download logs working with error log
* linting issues and code cleanup
* CI check fix
* documented the api and logs from file with error handling
* test and final changes done
* final changes done
* Fix order of server-side translations
* Fix incorrect indentation of logs.yaml
---------
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
* Marks the RemoteTeamId field of RemoteClusters as deprecated
The `RemoteTeamId` was used both in the `RemoteCluster` model and as
part of remote invites. It existed so two different remotes could have
multiple secure connections between them, and have each of those
connections scoped to a team, sharing through each only the channels
that belong to their corresponding team.
The way that we're thinking on the feature currently only contemplates
one secure connection between two servers, and shares all the
channels through that secure connection, so this field is no longer
needed.
As we don't have a system in place for the user to choose in which
team a channel should be created from an invite, this change adds a
mechanism that checks the invite for a teamId, and if it's not
present, fetches a team from the database to create the channel
into. This makes the change backwards compatible for secure
connections that already have an established behavior and allows us to
move forward with the implementation of an alternative.
* Mark invite teamId field as deprecated
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* mm-57988: Allowing for channel admins to move thread
* Fix the MoveThread team admin unit test that was introduced
* Renaming the hasPermittedRole function to hasPermittedWranglerRole
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Calling app.DeletePost immediately after creating a post
is susceptible to replica lag because we were calling the
replica to check for the post.
We fix this by passing a context to always query master.
https://mattermost.atlassian.net/browse/MM-58038
```release-note
NONE
```
* Cleans the RemoteId when creating a user through the API
* Replace bad usage of the API with an App call in tests
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
We use navigator.sendBeacon to send the new metrics since it's recommended for that, but it doesn't let us set custom headers which means that we can't set the CSRF token header that we'd need to pass that check