* WIP
* Added rebuild channels index functionality
* Added rough logic to send message to all sysadmins
* WIP
* WIP
* WIP
* Cleanup
* i18n fix
* reading through all pages of system admins
* Fixed webapp style
* i18n fix
* Added help text
* i18n fix
* i18n update
* Updated system console button action
* Updated snapshots
* some cleanup
* Updated snapshot
* Update server/channels/app/server.go
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* fixed typo
* Refactoring to improve readibility
* moved index check to API later during config update
* Added some docs
* Updated get system bot
---------
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* create ChannelBookmarks table
* ChannelBookmark model
* channel bookamrks Store layer
* add GetBookmarksForAllChannelByIdSince
* add channel bookmarks to test store
* Add channel bookmarks to app layer
* remove index for createAt in channel bookmarks migrations
* remove createAt from select channel bookmark query and enable store delete bookmark test
* update reponse of UpdateBookmark
* rename db migration files
* channel bookmarks store update sort order
* channel bookmarks app layer update sort order
* fix lint & tests
* Fix lint and introduce util functions to insert / remove from slice
* remove model etag
* i18n
* defer remove file info after test run
* Fix tests passing the request context
* fix migrations
* fix TestRetry
* Add bookmark permissions (#25560)
* Adds channel bookmarks permissions
* Fix linter
* Remove unnecessary empty lines
* Remove scss change as it's not necessary anymore
* Fix mock store
* Fix mock store and add role entry
* Fix test
* Adds cypress test and update permissions migration to update admin roles
* Adds channel bookmarks roles to default admin roles
* Adds bookmark permissions to default role permissions constant in webapp
* Update mmctl test
* Update permission test after normalising the roles
* fix store tests
* fix app layer tests
* Add new bookmark endpoint (#25624)
* Adds channel bookmarks api scaffold and create endpoint
* Applies review comments to the API docs
* Adds websocket test to create channel bookmark
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* MM-54426 exclude Channel Bookmarks files from data retention (#25656)
* Augment channel APIs to include bookmarks (#25567)
* update files docs for server 9.4
* Adds update channel bookmark endpoint (#25653)
* Adds update channel bookmark sort order endpoint (#25686)
* Adds update channel bookmark endpoint
* Updates edit app method to return the right deleted bookmark and adds tests
* Adds the update channel bookmark sort order endpoint
* Fix repeated test after merge
* Assign right permissions to each test
* Update store and app layer to return specific errors and add tests
* Adds delete channel bookmark endpoint (#25693)
* Updates edit app method to return the right deleted bookmark and adds tests
* Fix repeated test after merge
* Updates edit app method to return the right deleted bookmark and adds tests
* Adds delete channel bookmark endpoint
* Adds list channel bookmarks endpoint (#25700)
* Add channel moderation to bookmarks (#25716)
* fix migrations index
* fix getChannelsForTeamForUser
* fix getChannelsForTeamForUser
* fix bad merge client4
* fix file api with bookmark permission
* add ChannelBookmarks feature flag
* add missing translations
* Set DB column for type as enum
* use custom type for bookmark query using sqlx
* use transaction when saving bookmark
* return NewErrNotFound instead of Sql.ErrNoRows
* use squirrel for IN query
* add a limit of 1K for records in GetBookmarksForAllChannelByIdSince
* UpdateSortOrder with one single query instead of multiple updates
* fix shadow declaration
* fix channel bookmarks permission string definition in admin console
* fix another shadow declaration
* Fix model conversion
* add SplitSliceInChunks
* remove include bookmarks in channels api
* Cap amount of bookmarks per channel
* add etag back to get channels
* feedback review
* update file info when replacing a bookmark file
* return 501 not implemented when the license is not available
* add detail message when getting channel member on bookmark api
* start audit before permission check on create bookmark api
* use require.Eventuallyf for testing WS events
* remove unnecessary log in app layer
* use require instead of assert to avoid panics
* enforce limit when querying bookmarks since
* prevent to create/update bookmark if file is already attached
* fix lint
* delete file when a bookmark is deleted
* Dot allow to set a fileId and a url at the same time to a bookmark
* fix query to delete a file that belongs to a bookmark
* do not patch the bookmark type
* Server side FeatureFlag check (#26145)
* use ff in server, set ff to false
* turn on FF for unit tests
* defer unset FF for unit tests
* turn ff on for testing
* only allow attaching files that were uploaded for bookmark
* Set feature flag off as default
* fix lint
* update email templates as PR failed
* revert templates
* force the assignment of ID when creating a bookmark
* Fix unit tests
---------
Co-authored-by: Miguel de la Cruz <miguel@mcrx.me>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Caleb Roseland <caleb@calebroseland.com>
Co-authored-by: Scott Bishel <scott.bishel@mattermost.com>
UserStore.GetAllProfiles is a very frequent call. We cache it
when there are no options passed which is the default case.
https://mattermost.atlassian.net/browse/MM-57084
```release-note
NONE
```
* [MM-56757] Expand NotificationsLog to include websocket and email, adding much more varied logging across the entire process
* Rework the status/notify prop calls
* Avoid some repetition in the logging calls
* Fix one log
* Wrap error
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Add 'Disable' config to CloudSettings to prevent the CWS backend from making calls to the Customer Portal
* Add custom error when disabled
* Make Disable setting cloud_restrictable
* Return 422 instead of 400
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Ensure p.Integration is not nil
A Sentry crash report showed that the check
p.Integration.URL != input.integration.URL
was dereferencing a nil pointer. At that point in the code,
input.Integration is known to be non-nil, but we still need to check
whether the original, p.Integration, is.
Crash report: https://mattermost-mr.sentry.io/issues/4918263046/events/5738b67edcee4c9c883d40f7d26563a6
* Test nil original integration and both nil
* POC for API handler opts modifier
* Made upload POSt api a file upload API
* Specified file upload local API
* Specified file upload local API
* Specified file upload API
* Simplified handler params
* Added basic security checks
* Fixed i18n
* used type for API handler options
* Removed limited reader from util deserializers (#26263)
* added store
* make generated
* add missing license headers
* fix receiver name
* i18n
* i18n sorting
* update migrations from master
* make migrations-extract
* update retrylayer tests
* replaced sql query with id pagination
* fixed flaky tests
* missing columns
* missing columns on save/update
* typo
* improved tests
* remove enum from mysql colum
* add password credentials to store
* license changes
* OAuthOutgoingConnectionInterface
* Oauth -> OAuth
* make generated
* copied over installed_oauth_apps component and renamed things to installed_outgoing_oauth_connections
* merge migrations
* renamed migrations
* model change suggestions
* refactor test functionsn
* migration typo
* refactor store table names
* updated sanitize test
* cleanup merge
* refactor symbol
* "installed outgoing oauth connections" page works
* move things into a nested folder
* add and edit page stubs work
* list endpoint
* oauthoutgoingconnection -> outgoingoauthconnection
* signature change
* i18n update
* granttype typo
* naming
* api list
* uppercase typo
* i18n
* missing license header
* fixed path in comments
* updated openapi definitions
* changes to support selecting command request url
* sanitize connections
* make generated
* test license and no feature flag
* removed t.fatal
* updated testhelper calls
* yaml schema fixes
* switched interface name
* suggested translation
* missing i18n translation
* management permission
* moved permission initalization to proper place
* endpoints
* put tests
* error check typo
* fixed specific enttity urls
* tests
* read permission check
* updated openapi definitions
* i18n
* GetConnectionByAudience method
* notes
* replaced GetConnectionsByAudience with a filter
* added custom oauth token object
* updated interface and usage
* properly set enterprise interface
* move retrieval logic to impl
* webhook tests
* translations
* i18n: updates
* address comments
* endpoint and tests
* i18n
* api docs
* fixed endpoint path
* sq.like
* use filter object instead of parameters
* set url values if not empty
* typos
* converted some components to function components, and move around files
* correctly check token url
* restore flag to previous value
* added command oauth handler
* update enterprise imports
* migrate last component to function component
* Added enterprise import
* refactor permissions and add necessary webapp code
* Check correct flag in permission tree
* allow partial updates
* sort i18n webapp
* missing test modification
* fixed webapp i18n sorting
* allow validating stored connections
* added missing translation
* fix finished adding connection link and text on result page
* added missing permission to smoke tests
* missing role in smoke test
* updated translations
* updated translations
* support editing client secret on existing connection
* fix some i18n strings
* updated translations
* better error messages
* progress on using react select for command request url while maintaining typed in value
* remove writeheader, test
* HasValidGrantType
* end early to avoid nil pointer errors
* move slash command request url input box into its own component
* wrap components related to oauth connections in config check
* fix tests
* i18n-extract
* change some i18n strings to say "Outgoing OAuth 2.0 Connections"
* remove debug code
* fixed i18n
* updated i18n file
* feature configuration backend
* typo
* add system console setting
* Revert "typo"
This reverts commit 669da23e8ee47525ccaa6f59cbbd20bf8a121191.
* Revert "updated i18n file"
This reverts commit d0882c0dd7587533f0d0f7a7b7b190684186158a.
* Revert "fixed i18n"
This reverts commit 3108866bc19139182dfd094921c56cdefc4695ea.
* fixed i18n
* updated i18n file
* typo
* updated i18n
* updated i18n
* updated i18n
* updated version to 9.6
* replace feature flag with system console configuration
* i18n
* updated tests
* pr feedback
* fix styling of disabled text box
* fix styling of action links in integration console
* server changes for validation feature
* webapp changes for validation feature
* pencil icon styling
* styling fixes for oauth audience correct configuration message
* fix sanitize test
* remove max lengths from outgoing oauth connection form
* use config var in webapp instead of feature flag
* change asterisks to bullets
* update api docs for validate endpoint
* feedback from ux review
* fix lint, types, tests
* fix stylelint
* implement validation button under the token url input
* support wildcard for matching audience urls
* updates for styling
* update snapshots
* add doc links for the outgoing oauth connections feature
* change doc links to use permalink
* add docs link to system console
* fix: use limitedreader in json decoding
* fix: form error in validation
* management permission can read now
* updated api documentation
* doc typo
* require one permission to read only
* fix api connection list audience filter
* fix audience matching and add loading indicator
* fix team permissions on outgoing oauth connection api calls
* fix api doc and test, for adding team id to query params
* handle read permissions by adding a team in the payload
* missing teamid query parameter in test
* change validate button logic to not require audience urls to be filled out
* fix redux type
---------
Co-authored-by: Felipe Martin <me@fmartingr.com>
* trial commit
* [MM-56172] Integrate fetching and sorting of user reporting into the table component (#25749)
* inint
* lint
* Update system_users.test.tsx.snap
* cypress test fix
* added pkg
* revoke sessio into new compo
* Update system_users.test.tsx.snap
* trans
* more disable
* rename
* Update system_users_dropdown.test.tsx
* snap
* Delete system_users_list.test.tsx.snap
* Create system_users_list.test.tsx.snap
* Delete system_users_list.test.tsx.snap
* name2
* start removing the filter from the list
* more clean
* snaps
* Update package-lock.json
* des
* Update index.scss
* Update system_users_list.tsx
* Update system_users_list.tsx
* Update system_users.tsx
* Update system_users_list.tsx
* Update index.scss
* menu
* action menu
* split
* Update system_users_list.tsx
* Update system_users_list_new.tsx
* fix
* Update en.json
* temp remove
* Update system_users.test.tsx.snap
* Delete system_users_list.test.tsx.snap
* Update en.json
* ch
* move
* a
* Update en.json
* fix
* Update system_users.test.tsx.snap
* Update menu.tsx
* Update admin_header.tsx
* changes in the file system
* fixes
* integration begin
* lint
* Update rhs.ts
* upper pagination
* Update list_table.scss
* pinned
* more a11y
* Update list_table.scss
* i18n mor
* design changes
* descriptions
* lint
* loading states
* fix
* actions update
* index fix
* single action
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-56467] Clear up unused code of old systems users (#25855)
* ccc
* Update en.json
* [MM-56478] Improve the user loading in user details page after changes in users list page in admin console (#25861)
* init
* tem
* more fix
* handlers clear up, team's fixes
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Merge'd
* [MM-56279] Add paging to user list (#25863)
* Update system_users.tsx
* Update system_users.tsx
* [MM-56270] Hook up user actions menu, refactor modals to work with new menuing style (#25897)
* Hookup menu items and modals
* Add error handling, test fixes
* Ensure modals animate properly
* Add a bunch of TODOs around keeping the user data up to date
* Fix i18n and snaps
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-56263] Enable selective column hiding for users table (#25898)
* [MM-56539] Revisiting the design of the total users count on the left and in pagination in users table (#25947)
* default sort order
* default sort order (#25956)
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-56267] Add search term filtering (#25952)
* Include search term with request
* Update user count with filtering
* Oops
* Add 500ms debounce to avoid spamming server with requests
* PR feedback
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-56398] Add date range filter to user reporting table (#25974)
* WIP
* Some small adjustments
* Two fixes
* PR feedback
* Remove menuitem
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Merge'd
* [MM-56615] Add messaging for MySQL instances around the post stats (#26036)
* [MM-56261] Add export modals and hook up button to user management screen (#26015)
* [MM-56576] Update users when actions occur and show errors when actions fail (#25951)
* [MM-56576] Update users when actions occur and show errors when actions fail
* Forgot the else
* PR feedback
* [MM-56617] Move action modals to ConfirmModalRedux
* Add filters popover to the users admin table (#26042)
* int
* 0 zeros
* dd
* re
* file move
* Update system_users_filter_popover.scss
* a
* Update system_users_filter_popover.scss
* role and status
* fix
* Update index.test.ts
* overlay
* Update dropdown_input.tsx
* i
* Update en.json
* done
* Update en.json
* dd
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Make column toggler column menu items consistent with table column names
* Couple typo fixes
* Fix i18n
* some e2e related changes
* Fixed issue where you couldn't queue multiple batch export jobs
* Fix id tag
* table header mis allignment issue solved
* [MM-56727] Fix a TODO, fix Demote to guest should only appear when enabled
* rev comments
* Stop sending down all profile data
* chore(e2e): Fix tests cases for new user Management ui (#26089)
* chore(e2e): Fix lint issues in cypress tests
* chore(e2e): Fix e2e tests
- user_management_spec
- authentication_method_spec
* [MM-56710] Revert to in-memory compilation of CSV report
* Update system_users.tsx
* Merge'd
* Fix test
---------
Co-authored-by: M-ZubairAhmed <m-zubairahmed@protonmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: yasserfaraazkhan <attitude3cena.yf@gmail.com>
* [MM-56616] Changes for the DM for batch reporting
* Use requesting user's locale
* Fix lint
* Remove unnecessary test
* Move back to file attachment
* Add default API case
* Fix i18n
* Hardcode the CSV string
* Adjustments to cloud annual renewal announcement bar
* Add exclusion for trials
* Add more exceptions for when on trial during renewal period
* Add support for simulated_current_time_ms
* A few more changes to allow us to test this post-merge
* Fix tests, pipeline
* Final fix around emails
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* option for auto inviting plugin to all shared channels.
* auto-invite remotes to shared channels when flag set
* fix unit test
* immediately ping new remotes; fix unique siteurl bug
* make i18n-extract
* fix translations
* plugin hooks for file attachments
* hook for profile image sync
* fix profile image sync
* fix unit test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Fixed actived users and added mau in true up report
* Temp disable of true up calendar checks for testing
* Revert "Temp disable of true up calendar checks for testing"
This reverts commit 73055bdb258546b863ea6841e39e22687da8aead.
* Added unit test
* Linting
* Typo
* Forgot the pain of linting
* Added dau
* Create imports.go
* Fix merge error
* Fixed test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* Add ChannelStore.UpdateMultipleMembersNotifyProps
* Make UpdateMultipleMembersNotifyProps return updated values from the DB
* Add UpdateChannelMembersNotifications plugin API
* Extract i18n
* Fix style
* Make layers
* Change to PatchMultipleMembersNotifyProps
* Add limit to PatchChannelMembersNotifyProps
* Add additional unit tests
* Address feedback
* Lowercase decodeJSON
* Have PatchMultipleMembersNotifyProps update LastUpdateAt
* Fix tests that relied on unreliable return order
* Fix i18n
* Add email notifications for Cloud Renewals
* Updates
* Updates
* Update app-layers
* make build-templates
* Add ability to set an env variable as a unix timestamp in s as the current date when getting DaysToExpiration
* Add a mechanism to ensure at least one admin receives every email
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Gabe Jackson <3694686+gabrieljackson@users.noreply.github.com>
* Add renewal card component to purchase modal, remove some unneeded components
* Add back commented code
* Fixes for pipelines
* Delinquency modal skips invoice summary table if there is only one invoice
* Updates
* Fixes from ms precision changes
* Fixes for tests after ms precision changes
* A couple more occurrences
* Removal of a bunch of code that's no longer necessary
* Fix linter
* Fix i18n
* Fix
* More fixing
* Updates
* Updates based on PR feedback
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* [MM-56399] Add user count endpoint for reporting
* [MM-56397] Added search term to user report filter
* Missing translation
* [MM-56456] Rename up/down to prev/next for reporting cursoring
* [MM-56269] Add DeleteAt, MfaActive and AuthService fields to UserReport
* PR feedback
* Fix test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* update ArrayFromJSON to use LimitedReader
* update for bad merge
* fix lint errors
* update test code
* update unit tests
* update unit tests
* fix unit tests
* use consts, other cleanup
* add non sorting duplicate check
* set config to default value, then config setting if available
* fix lint errors
* fixes and debugs
* fix log test
* remove setting from Client, add unlimited Parser to client
* a couple more fixes
* another fix
* rename some variables
* remove superflous call
* check for valid MaximumPayloadSize
* update language file
* fix for e2e-tests
* update util function to return error
* lint fix
* update config property name to include unit
* fix for unit test
* add new config to telemetry
* call function to create LimitedReader
* Deprecate old function, use new function name
* return new AppError on failed parse
* return new AppError on failed parse
* return new AppError on failed parse
* add constant for i18n valid constants
* Update server/public/model/utils_test.go
Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
* Apply suggestions from code review
Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
* update error variable, remove unnecessary check
* Update function names
* fix errors from merge
* update unit test to create unique ids
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: Miguel de la Cruz <mgdelacroix@gmail.com>
* option for auto inviting plugin to all shared channels.
* auto-invite remotes to shared channels when flag set
* fix unit test
* immediately ping new remotes; fix unique siteurl bug
* make i18n-extract
* fix translations
* fix merge conflicts
* make modules-tidy
* revert accidental go.mod change
* revert accidental go.sum changes
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
* option for auto inviting plugin to all shared channels.
* auto-invite remotes to shared channels when flag set
* fix unit test
---------
Co-authored-by: Mattermost Build <build@mattermost.com>
We can have 2 types of threads open at the same time. One from
the thread view, and another from RHS.
We add another variable to distinguish between the 2 states.
In future, if we have the ability for more than 2 threads, then
we would need to track by threadID.
https://mattermost.atlassian.net/browse/MM-56071
```release-note
NONE
```