Commit Graph

73 Commits

Author SHA1 Message Date
Agniva De Sarker
da7d71ccf7 MM-21357: Use typed constant for channel types (#17928)
* MM-21357: Use typed constant for channel types

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

```release-note
- Introduced a new type ChannelType for all channel types.
- Updated the Client4.UpdateChannelPrivacy method to ChannelType.
```

* Address review comments

```release-note
NONE
```

* telemetry fix

```release-note
NONE
```
2021-07-21 16:38:39 +02:00
Ben Schumacher
97ccf0bdf6 [MM-16751] golint model (#17896) 2021-07-21 16:38:39 +02:00
Agniva De Sarker
58e002888d MM-36947: Fix TestHeaderProviderDoCommand (#17901)
Setting AutomaticPrepackagedPlugins to true was making the test
to download the plugin from the marketplace and initialize it.

While this wasn't wrong in itself but that's not what the test does
and just part of the app initialization and it unnecessarily slowed
down the test by downloading the plugin zip file.

And initializing a plugin from inside a test has some issues
to work properly. While those could be solved, a cleaner way
is to just not download the plugin at all.

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

```release-note
NONE
```
2021-07-14 15:22:32 +02:00
Agniva De Sarker
0c5e05aa52 MM-36947: Fix failure in master (#17899)
Automatic Merge
2021-07-10 10:35:02 +02:00
Guillermo Vayá
f8fc5190ee [MM-36481] Fix emoji regex to support thumbsup (#17846) 2021-06-29 19:37:15 +02:00
Harrison Healey
fcf8f3d92b MM-36590 Re-add old emoji aliases (#17806)
* Re-add old emoji aliases

* Fix unit tests
2021-06-21 14:13:12 -04:00
Guillermo Vayá
bbebd14296 [34475] Support emoji 13.0 (#17741)
* generated data file from 'make emojis'

* format

* fix year

* fix tests

* fix header again
2021-06-17 08:31:12 -04:00
Manoj
226e60810f Custom status expiry (#17570)
* Added expiry support in custom status APIs (#11)

* Added expiry support in custom status APIs
Added validation for the duration and expiration time in request body
Made enum for the custom status durations

* Fixed the bug in expiry validation with dont clear validation

* Fixed review comments
Converted the durations enum to map
Removed extra if-else

* Added expiry support in custom status slash command (#17)

* Added expiry support in custom status slash command

* Added the check for timezone enabled in expiry time in custom status slash command

* Review fixes
Changed name of calculateExpriryTime to calculateEndOfDay
Made function SetDefaultEmoji for settting default emoji in set custom status API

* Added support for empty duration in custom status APIs
Made one of emoji and text required and duration optional in set custom status API
Made default duration dont clear in both API and slash command

* Changed value of ExpiresAt field in custom status slash command

* Code refactoring
Combined SetDefaults and TrimMessage into 1 function PreSave
Refactored isExpirationTimeValid function

* Used model variables instead of new variables in custom status slash command

* Modified behaviour of set custom status APIs (#19)

Removed dont_clear from validCustomStatusDuration map
Added logic to set duration custom date/time if only expires_at is specified in the body
Made function AreDurationAndExpirationTimeValid in custom status model

* Trigger CI build
2021-05-27 14:06:04 -03:00
Manoj
ff2fe1e62c Fixed MM-33249 issue (#17475)
* Added logic to detect and set unicode emoji in the custom status slash command

* Replaced strings.split with strings.Fields

* Added logic to handle empty string as message in custom status slash command

* Changed custom status slash command empty message behavior to set def… (#14)

* Changed custom status slash command empty message behavior to set default emoji

* Code refactoring

* Added unit tests and refactored some code

* WIP: Unit tests and refactoring for detecting unicode emoji in custom status slash commands

* Complete unit testing for Get custom status

* Fixed lint

* Added logic for removing skin tone from unicode emoji (#16)

* Added logic for removing skin tone from unicode emoji
Made a reverse system emojis map of string vs []string and stored the emojiNames in sorted order
Added the logic for detecting and replacing/removing skin tone in unicode emoji with variation selector
Added new unit tests with different skin tone emojis

* Refactored removeSkinTone logic to a separate function

* Added check for emoji before removing skin tone in custom status slash command

* Fixed custom status slash command unit test and refactored some code
Chanded the return type of GetEmojiNameFromUnicode from bool to int
Changed the logic for checking presence of emoji without removing skin tone
Fixed the unit tests

* Review fixes: Indentation changes
2021-05-26 21:03:08 +03:00
Max Erenberg
9ef41a55e2 [MM-7968] restrict creation of direct channels to team members (#17222)
* restrict creation of direct channels to team members

* run make i18n-extract

* add suggestions from hahmadia

* place common-team-check logic in app layer

* use flat SQL query

* show more specific error message to user

* MM-7968: Fmt file.

* MM-7968: Fix for moved session field.

Co-authored-by: Max Erenberg <max.erenberg@mattermost.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Martin Kraft <martinkraft@gmail.com>
Co-authored-by: Martin Kraft <martin@upspin.org>
2021-05-19 08:45:03 -04:00
Ibrahim Serdar Acikgoz
5ea06e51d0 Migrate to stateless app.App (#17542)
* add request context

* move initialialization to server

* use app interface instead of global app functions

* remove app context from webconn

* cleanup

* remove duplicated services

* move context to separate package

* remove finalize init method and move content to NewServer function

* restart workers and schedulers after adding license for tests

* reflect review comments

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-05-11 13:00:44 +03:00
Doug Lauder
e2b9cb98aa MM-33903 rename slash commands & permission (#17494)
- rename slash commands
    - "remote" -> "secure-connection"
    - "share" -> "share-channel"
- change status icons to text (translated)
- remove channel invite "Description" field
- rename permission "manage_remote_clusters" -> "manage_secure_connections"
2021-04-30 14:59:29 -04:00
Harrison Healey
3c162999a5 MM-22678 Use more user-friendly errors for channel commands (#17520)
* MM-22678 Use more user-friendly errors for channel commands

* Update text from ticket

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-04-28 15:01:44 -04:00
Haardik Dharma
ccc7365ac3 Bump golangci version to v1.38.0 (#17154)
* Update golangci to v1.38.0

Co-authored-by: Claudio Costa <cstcld91@gmail.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-04-28 16:43:41 +02:00
Ibrahim Serdar Acikgoz
28ff4dc8d0 [MM-32281] SqlRoleStore/GetByName: add context to allow read from master (#17176)
* role_store/GetByName: add context

* propagate context in the app layer

* propagate context in the app layer

* add missing import

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-04-21 18:01:02 +03:00
Chetanya Kandhari
9eceeaa8db Custom status fixes (#17122)
* Changed the request type to POST for the remove recent custom status API

Fixed the custom status clear slash command

* Added Delete method in the remove recent custom status endpoint

* Added one new endpoint to remove recent custom status with POST method

* Added comments for the recent custom status API

Co-authored-by: Manoj <manoj@brightscout.com>
Co-authored-by: Chetanya Kandhari <availchet@gmail.com>
Co-authored-by: Manoj <77336594+manojosh@users.noreply.github.com>
2021-04-21 11:37:17 +03:00
Doug Lauder
9799fe9be6 MM-34549 shared channels; add users to channel that were already sync'd (#17361)
Fixes a bug and adds a feature for shared channels:
- The Bug: when creating new shared channels, users that had already been sync'd via another channel were not added to the new channel's member list, since the users were not sync'd again. This PR sync's users per channel.
- The Feature: support custom statuses
2021-04-14 14:59:26 -04:00
Doug Lauder
f69cb38249 MM-32133 shared channel username collisions (#17347)
Support for handling username collisions between remote clusters. Users belonging to remote clusters have their username changed to include the remote name e.g. wiggin becomes wiggin:mattermost.

@mentions are also modified so the munged username is replaced with the original username when the post is sync'd with the remote the user belongs to.

When adding remote users:
- append the remote name to the username with colon separator
- append the remote name to the email address with colon separator
- store the original username and email address in user props
- when resolving @mentions replace with the stored original username
2021-04-13 10:40:12 -04:00
Agniva De Sarker
db01f2a91b MM-34002: Improve AddUserToChannel (#17174)
* MM-34002: Improve AddUserToChannel

When we would add a user to a channel, we would
check whether the user is removed from that team or not.

During LDAP sync, this check is not required because the
team member would have just been created. Hence, we
pass a boolean flag to bypass the check.

And with that done, we can freely query the replica.

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

```release-note
NONE
```

* Refactor code

* Rename a struct field

* fix double negative
2021-04-02 14:33:23 +05:30
Agniva De Sarker
4f0cfbe329 MM-33913: Fix read-after-write issues with team member (#17173)
During LDAP sync, we would call AddTeamMember which had a read-after-write issue
where we would create a team member but then immediately after that
query the team member.

The same pattern was found in:
AddTeamMember
AddTeamMembers
AddTeamMemberByToken

To fix this, we just return the inserted team member from AddUserToTeam and use that
instead of query GetTeamMember again.

```release-note
NONE
```

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

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-04-02 13:20:58 +05:30
Doug Lauder
02196e04fa MM-27493 Shared channels (MVP) (#17301)
Remote Cluster Service
- provides ability for multiple Mattermost cluster instances to create a trusted connection with each other and exchange messages
- trusted connections are managed via slash commands (for now)
- facilitates features requiring inter-cluster communication, such as Shared Channels
Shared Channels Service
- provides ability to shared channels between one or more Mattermost cluster instances (using trusted connection)
- sharing/unsharing of channels is managed via slash commands (for now)
2021-04-01 13:44:56 -04:00
Claudio Costa
ee3f986da0 [MM-32622] Remove app.WaitForChannelMembership() (#17048)
* Remove app.WaitForChannelMembership

* Fix tests

* Fix test

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-03-31 09:40:35 +02:00
Ibrahim Serdar Acikgoz
adcddf350e app/slashcommands/command_loadtest: fix decoding error (#17199)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-03-25 11:20:22 +03:00
Jesús Espino
633d82f0ac Remove Custom statuses feature flag (#17075) 2021-03-05 10:21:58 +02:00
Jesús Espino
9cc5089af8 Moving mlog to corelibs (#16915)
* Moving mlog to corelibs

* Regenerating app layers

* Fix golangci-lint problem

* Fixing golangci-lint errors

* Renaming from corelibs to shared

* Renaming from corelibs to shared

* Fixing import

* Fixing merge problems

* Fixing build
2021-03-05 09:18:37 +01:00
Eli Yukelzon
c64959b439 MM-31105 /Join <channel name> is case sensitive (#16903)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-03-03 10:44:18 +02:00
Jesús Espino
5dd2e75c10 Extracting i18n functionality to i18n core library (#16914)
* extracting i18n functionality to i18n core library

* Removing utils.T

* Adding documentation and changing one function name for better explanation

* Changing other missing utils.T

* Adding license string

* Renaming corelibs to pkg

* Renaming corelibs to pkg (moving directory)

* Renaming from pkg to shared

* Fixing bodyPage.Html casing

* Fixing merges

* Fixing merge problem

* Fixing tests
2021-02-26 08:12:49 +01:00
SimonSimonB
6fa4c8b8bd [Partial Fix #16623]: Fix initialism errors in codebase. (#16979)
Automatic Merge
2021-02-25 20:22:27 +01:00
Chetanya Kandhari
7585e16d84 Custom status feature (#16835)
* Create the system console setting and send to webapp

* MI-1145: Add custom status APIs

* MI-1145 Add slash commands to set and clear status

* Add validation for custom status API

* Trim custom status message

* Code refactoring

- Run gofmt

- Rename constants

* Remove sendUserUpdated webhook event

* Fix recent custom status length

* Update error conditions

* Disable /status slash command when config setting is off

* MI-1155: Create the feature flag for custom status APIs and slash commands

* Move recent custom statuses to user preferences (#7)

* Move recent custom statuses to user preferences

* Code refactoring and feedback changes

* Update slash command text and emoji regex

* Make the custom status feature flag off by default

* Update SetCustomStatus, handle recents not set better

* Update status codes

* Update slash command handling

* Add telementry settings

* Fix i18n order

* Revert "Fix i18n order"

This reverts commit 499f7eaca8.

* Update i18n strings
2021-02-18 12:08:01 +01:00
SimonSimonB
ffebfbf56f Fix initialisms/app (#16818)
Automatic Merge
2021-02-05 11:22:27 +01:00
Madhav Hugar
94c24eea20 Fix empty string comparison issues in the codebase (#16686)
Automatic Merge
2021-01-25 11:15:17 +01:00
Allan Guwatudde
81b06b5b72 Switch creation of users to use app method vs client method (#16673)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-01-20 12:25:18 +03:00
Agniva De Sarker
e89b26e8f3 goimports (#16640)
* format using `goimports -local github.com/mattermost/mattermost-server/v5 -w`

* added goimports lint check to .golangci.yml

* format using `goimports -local github.com/mattermost/mattermost-server/v5 -w` for a corner case

* make app-layers, *-mocks and store-layers for ci check

Co-authored-by: Mahmudul Haque <mahmudulhaque@protonmail.com>
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-01-07 22:42:43 +05:30
Harrison Healey
1933f7eb76 MM-30810 Remove special props from /me post (#16456)
* MM-30810 Remove special props from /me post

* Update unit test

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2021-01-04 14:13:38 -05:00
Agniva De Sarker
c1dd23a3c8 MM-31063: Change constants to use CamelCase (#16608)
* MM-31063: Change constants to use CamelCase

* store package

* change allcaps to camel case (#16615)

* New tools.mod

Co-authored-by: Ibrahim Serdar Acikgoz <serdaracikgoz86@gmail.com>
2021-01-04 11:32:29 +05:30
Ibrahim Serdar Acikgoz
8036ba86e7 [MM-31398] upgrade error level to critical in case of panic or os.Exit (#16584)
* upgrade error level to critical in case of panic or os.Exit

* reflect revivew comments

* fix error capitalization
2020-12-23 13:11:35 +03:00
Agniva De Sarker
1a131b54af MM-31064: Simplify indentation (#16565)
* MM-31064: Simplify indentation

Reduce indentation where possible.

```release-note
NONE
```

Command ran to verify:
golangci-lint run --disable-all --enable golint --max-issues-per-linter=10000 --max-same-issues=100000 ./... | grep "block ends with a return state"

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

* incorporate review comments

* enable golint for outdent rule

* fix remaining issues

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-12-21 18:50:47 +03:00
Haardik Dharma
609c8166f2 [MM-30911]: Change receiver name for (me *TestHelper) in app/slashcommands/helper_test.go to be more idiomatic. (#16387)
Automatic Merge
2020-12-12 15:45:17 +01:00
Haardik Dharma
0dee08fa31 Update command_me.go (#16522)
Automatic Merge
2020-12-12 07:15:17 +01:00
Haardik Dharma
caaa5690b6 Update command_echo.go (#16521)
Automatic Merge
2020-12-12 06:15:17 +01:00
Haardik Dharma
625185cb5b Update command_online.go (#16493)
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-12-11 22:51:06 +05:30
Haardik Dharma
93a4c7bc7e Update command_groupmsg.go (#16487)
Automatic Merge
2020-12-11 17:45:18 +01:00
Haardik Dharma
b8e9bac921 Update command_code.go (#16486)
Automatic Merge
2020-12-11 16:45:18 +01:00
Haardik Dharma
7fb5476c64 Update command_channel_header.go (#16485)
Automatic Merge
2020-12-10 17:15:17 +01:00
Haardik Dharma
5f0f5a7a7f Update command_shortcuts.go (#16494)
Automatic Merge
2020-12-09 15:45:18 +01:00
Florent Peterschmitt
349b83f23a implement and use striped LRU cache to lower mutex contention (#15764)
* Implement Striped LRU cache

* ci

* fix

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-12-09 19:25:14 +05:30
Haardik Dharma
977ad99af6 Update command_shrug.go (#16481)
Automatic Merge
2020-12-08 18:15:18 +01:00
Haardik Dharma
81854aea5c Update command_mute.go (#16479)
Automatic Merge
2020-12-08 11:15:17 +01:00
Haardik Dharma
4e2a33386b [MM-30913]: Change receiver name for (me *CollapseProvider) in app/slashcommands/command_expand_collapse.go to be more idiomatic. (#16389)
Automatic Merge
2020-12-04 07:15:17 +01:00
Jesús Espino
a74fe05695 Removing supplier concept from the sql store (#16355)
* Removing supplier concept from the sql store

* Removing other metions to supplier

* Fixing gofmt

* Fixing gofmt

* Renaming NewSqlStore to New

* Fixing tests

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-12-02 12:06:23 +01:00