mirror of
https://github.com/mattermost/mattermost.git
synced 2026-10-30 22:55:29 +08:00
* Added enable/disable setting and feature flag * added rest of notifgication settings * Added backend for content flagging setting and populated notification values from server side defaults * WIP user selector * Added common reviewers UI * Added additonal reviewers section * WIP * WIP * Team table base * Added search in teams * Added search in teams * Added additional settings section * WIP * Inbtegrated reviewers settings * WIP * WIP * Added server side validation * cleanup * cleanup * [skip ci] * Some refactoring * type fixes * lint fix * test: add content flagging settings test file * test: add comprehensive unit tests for content flagging settings * enhanced tests * test: add test file for content flagging additional settings * test: add comprehensive unit tests for ContentFlaggingAdditionalSettingsSection * Added additoonal settings test * test: add empty test file for team reviewers section * test: add comprehensive unit tests for TeamReviewersSection component * test: update tests to handle async data fetching in team reviewers section * test: add empty test file for content reviewers component * feat: add comprehensive unit tests for ContentFlaggingContentReviewers component * Added ContentFlaggingContentReviewersContentFlaggingContentReviewers test * test: add notification settings test file for content flagging * test: add comprehensive unit tests for content flagging notification settings * Added ContentFlaggingNotificationSettingsSection tests * test: add user profile pill test file * test: add comprehensive unit tests for UserProfilePill component * refactor: Replace enzyme shallow with renderWithContext in user_profile_pill tests * Added UserProfilePill tests * test: add empty test file for content reviewers team option * test: add comprehensive unit tests for TeamOptionComponent * Added TeamOptionComponent tests * test: add empty test file for reason_option component * test: add comprehensive unit tests for ReasonOption component * Added ReasonOption tests * cleanup * Fixed i18n error * fixed e2e test lijnt issues * Updated test cases * Added snaoshot * Updated snaoshot * lint fix * WIP * lint fix * Added post flagging properties setup * review fixes * updated snapshot * CI * Added base APIs * Fetched team status data on load and team switch * WIP * Review fixes * wip * WIP * Removed an test, updated comment * CI * Added tests * Added tests * Lint fix * Added API specs * Fixed types * CI fixes * API tests * lint fixes * Set env variable so API routes are regiustered * Test update * term renaming and disabling API tests on MySQL * typo * Updated store type definition * Minor tweaks * Added tests * Removed error in app startup when content flaghging setup fails * Updated sync condition: * Flag message modal basE * added post preview * displaying options * Adde comment input * Updated tests and docs * finction rename * WIP * Updated tests * refactor * lint fix * MOved to data migration * lint fix * CI * added new migration mocks * Used setup for tests * some comment * Removed unnecesseery nil check * Form validation * WIP tests * WIP tests * WIP tests * fix: mock content flagging config selector with correct reasons format Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat> * fix: add mock for getContentFlaggingConfig in flag post modal test Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat> * Updated error code order in API docs * removed empty files * Added tests * lint fixes * minor tweak * lint fix * type fix * fixed test * nit * test enhancements * API WIP * API WIP * creating values * creating content flagging channel and properties * Able to save properties * Added another property field * WIP * WIP * Added validations * Added data validations and hidden post if confifgured to * lint fixes * Added API spec * Added some tests * Added tests for getContentReviewBot * test: add comprehensive tests for getContentReviewChannels function * Added more app layer tests * Added TestCanFlagPost * test: Add comprehensive tests for FlagPost function * Added all app layer tests * Removed a file that was reamoved downstream * test: add content flagging test file * test: add comprehensive tests for FlagContentRequest.IsValid method * Added model tests * test: add comprehensive tests for SqlPropertyValueStore.CreateMany * test: add comprehensive tests for flagPost() API function * Added API tests * linter fix * WIP * sent post flagging confirmation message * fixed i18n nissues * fixed i18n nissues * CI * Updated test * fix: reset contentFlaggingGroupId for test isolation in content flagging tests * removed cached group ID * removed debug log * review fixes * Used correct ot name * CI * Updated mobile text * Handled JSON error * fixerdf i18n * CI * Integrate flag post api (#33798) * WIP * WIP * Added API call * test: add test for Client4.flagPost API call in FlagPostModal * fix: remove userEvent.setup() from flag post modal test * test: wrap submit button click in act for proper state updates * Updated tests * lint fix * CI * Updated to allow special characters in comments * Handled empty comment * Used finally * CI * Fixed test * Spillage card integration (#33832) * Created getContentFlaggingFields API * created getPostPropertyValues API * WIP * Created useContentFlaggingFields hook * WIP * WIP * Added option to retain data for reviewers * Displayed deleted post's preview * DIsplayed all properties * Adding field name i18n * WIP - managing i18n able texts * Finished displaying all fields * Manual cleanup * lint fixes * team role filter logic fix * Fixed tests * created new API to fetch flagged posts * lint fix * Added new client methods * test: add comprehensive tests for content flagging APIs * Added new API tests * fixed openapi spec * Fixed DataSpillageReport tests * Fixed PostMarkdown test * Fixed PostPreviewPropertyRenderer test * Added metadata to card renderer * test fixes * Added no comment placeholder * Fixed test * refactor: improve test mocking for data spillage report component * test mock updates * Updated reducer * not resetting mocks * WIP * review fixes * CI * Fixed * fixes * Content flagging actions implementation (#33852) * Added view detail button * Created RemoveFlaggedMessageConfirmationModal modal * Added key and remove flag request modal * IMplemented delete flagged post * Handled edge cases of deleting flagged post * keep message * UI integration * Added WS event for post report update and handled deleted files of flagged post * Added error handling in keep/remove forms * i18n fixes * Updated OpenAPI specs * fixed types * fixed types * refactoring * Fixed tests * review fixes * Added new property translations * Improved test * fixed test * CI * fixes * CI * fixed a test * CI --------- Co-authored-by: aider (anthropic/claude-sonnet-4-20250514) <aider@aider.chat>
259 lines
11 KiB
YAML
259 lines
11 KiB
YAML
/api/v4/content_flagging/flag/config:
|
|
get:
|
|
summary: Get content flagging configuration
|
|
description: |
|
|
Returns the configuration for content flagging, including the list of available reasons for flagging content. This data is used to gather details from the user when they flag content.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
responses:
|
|
'200':
|
|
description: Configuration retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reasons:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of reasons for flagging content
|
|
reporter_comment_required:
|
|
type: boolean
|
|
description: Indicates if a comment from the reporter is required when flagging content
|
|
'404':
|
|
description: Feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/team/{team_id}/status:
|
|
get:
|
|
summary: Get content flagging status for a team
|
|
description: |
|
|
Returns the content flagging status for a specific team, indicating whether content flagging is enabled on the specified team or not.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: team_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the team to retrieve the content flagging status for
|
|
responses:
|
|
'200':
|
|
description: Content flagging status retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: Indicates if content flagging is enabled for the team
|
|
'403':
|
|
description: Forbidden - User does not have permission to access this team.
|
|
'404':
|
|
description: The specified team was not found or the feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/post/{post_id}/flag:
|
|
post:
|
|
summary: Flag a post
|
|
description: |
|
|
Flags a post with a reason and a comment. The user must have access to the channel to which the post belongs to.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: post_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the post to be flagged
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
reason:
|
|
type: string
|
|
description: The reason for flagging the post. This must be one of the configured reasons available for selection.
|
|
comment:
|
|
type: string
|
|
description: Comment from the user flagging the post.
|
|
responses:
|
|
"200":
|
|
description: Post flagged successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatusOK"
|
|
'400':
|
|
description: Bad request - Invalid input data or missing required fields.
|
|
'403':
|
|
description: Forbidden - User does not have permission to flag this post.
|
|
'404':
|
|
description: Post not found or feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/fields:
|
|
get:
|
|
summary: Get content flagging property fields
|
|
description: |
|
|
Returns the list of property fields that can be associated with content flagging reports. These fields are used for storing metadata about a post's flag.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
responses:
|
|
'200':
|
|
description: Custom fields retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
description: A map of property field names to their definitions
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/PropertyField"
|
|
'404':
|
|
description: Feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/post/{post_id}/field_values:
|
|
get:
|
|
summary: Get content flagging property field values for a post
|
|
description: |
|
|
Returns the property field values associated with content flagging reports for a specific post. These values provide additional context about the flags on the post.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: post_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the post to retrieve property field values for
|
|
responses:
|
|
'200':
|
|
description: Property field values retrieved successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PropertyValue"
|
|
description: An array of property field values associated with the post
|
|
'403':
|
|
description: Forbidden - User does not have permission to access this post.
|
|
'404':
|
|
description: Post not found or feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/post/{post_id}:
|
|
get:
|
|
summary: Get a flagged post with all its content.
|
|
description: |
|
|
Returns the flagged post with all its data, even if it is soft-deleted. This endpoint is only accessible by content reviewers. A content reviewer can only fetch flagged posts from this API if the post is indeed flagged and they are a content reviewer of the post's team.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: post_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the post to retrieve
|
|
responses:
|
|
'200':
|
|
description: The flagged post is fetched correctly
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/Post"
|
|
'403':
|
|
description: Forbidden - User does not have permission to access this post, or is not a reviewer of the post's team.
|
|
'404':
|
|
description: Post not found or feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/post/{post_id}/remove:
|
|
put:
|
|
summary: Remove a flagged post
|
|
description: |
|
|
Permanently removes a flagged post and all its associated contents from the system. This action is typically performed by content reviewers after they have reviewed the flagged content. This action is irreversible.
|
|
The user must be a content reviewer of the team to which the post belongs to.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: post_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the post to be removed
|
|
responses:
|
|
'200':
|
|
description: Post removed successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatusOK"
|
|
'403':
|
|
description: Forbidden - User does not have permission to remove this post.
|
|
'404':
|
|
description: Post not found or feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|
|
/api/v4/content_flagging/post/{post_id}/keep:
|
|
put:
|
|
summary: Keep a flagged post
|
|
description: |
|
|
Marks a flagged post as reviewed and keeps it in the system without any changes. This action is typically performed by content reviewers after they have reviewed the flagged content and determined that it does not violate any guidelines.
|
|
The user must be a content reviewer of the team to which the post belongs to.
|
|
An enterprise advanced license is required.
|
|
tags:
|
|
- Content Flagging
|
|
parameters:
|
|
- in: path
|
|
name: post_id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The ID of the post to be kept
|
|
responses:
|
|
'200':
|
|
description: Post marked to be kept successfully
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatusOK"
|
|
'403':
|
|
description: Forbidden - User does not have permission to keep this post.
|
|
'404':
|
|
description: Post not found or feature is disabled via the feature flag.
|
|
'500':
|
|
description: Internal server error.
|
|
'501':
|
|
description: Feature is disabled either via config or an Enterprise Advanced license is not available.
|