Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s
Server CI Nightly Race / Build Environment (push) Failing after 1s
89 lines
2.8 KiB
Go
89 lines
2.8 KiB
Go
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
package model
|
|
|
|
const FlaggedPostReportVersion = "1.1"
|
|
|
|
type FlaggedPostReportContext struct {
|
|
Post *Post
|
|
Channel *Channel
|
|
Team *Team
|
|
Author *User
|
|
EditHistory []*Post
|
|
}
|
|
|
|
// FlaggedPostReportPost is the on-disk shape for post.yaml. It
|
|
// embeds *Post to reuse common fields; the wire format is fixed by the
|
|
// MarshalYAML method below so the report layout does not depend on Post's
|
|
// own field tags.
|
|
type FlaggedPostReportPost struct {
|
|
*Post
|
|
|
|
AuthorName string
|
|
AuthorEmail string
|
|
ChannelDisplayName string
|
|
TeamID string
|
|
TeamDisplayName string
|
|
ReplyCountPtr *int64
|
|
EditHistoryOrder []string
|
|
}
|
|
|
|
func (f FlaggedPostReportPost) MarshalYAML() (any, error) {
|
|
out := map[string]any{
|
|
"author_name": f.AuthorName,
|
|
"author_email": f.AuthorEmail,
|
|
"channel_display_name": f.ChannelDisplayName,
|
|
"team_id": f.TeamID,
|
|
"team_display_name": f.TeamDisplayName,
|
|
}
|
|
if f.Post != nil {
|
|
out["id"] = f.Post.Id
|
|
out["author_id"] = f.Post.UserId
|
|
out["message"] = f.Post.Message
|
|
out["channel_id"] = f.Post.ChannelId
|
|
out["create_at"] = f.Post.CreateAt
|
|
out["update_at"] = f.Post.UpdateAt
|
|
out["is_pinned"] = f.Post.IsPinned
|
|
out["root_id"] = f.Post.RootId
|
|
if props := f.Post.GetProps(); len(props) > 0 {
|
|
out["props"] = props
|
|
}
|
|
if f.Post.Metadata != nil {
|
|
out["metadata"] = f.Post.Metadata
|
|
}
|
|
}
|
|
if f.ReplyCountPtr != nil {
|
|
out["reply_count"] = *f.ReplyCountPtr
|
|
}
|
|
if len(f.EditHistoryOrder) > 0 {
|
|
out["edit_history_order"] = f.EditHistoryOrder
|
|
}
|
|
return out, nil
|
|
}
|
|
|
|
// FlaggedPostReportContentReview is the on-disk shape for content_review.yaml.
|
|
type FlaggedPostReportContentReview struct {
|
|
ReporterUserID string `yaml:"reporter_user_id"`
|
|
ReporterUsername string `yaml:"reporter_username"`
|
|
ReporterReason string `yaml:"reporter_reason"`
|
|
ReporterComment string `yaml:"reporter_comment"`
|
|
ReportTimestamp int64 `yaml:"report_timestamp"`
|
|
Hidden bool `yaml:"hidden"`
|
|
ReviewerUserID string `yaml:"reviewer_user_id,omitempty"`
|
|
ReviewerUsername string `yaml:"reviewer_username,omitempty"`
|
|
ReviewerComment string `yaml:"reviewer_comment,omitempty"`
|
|
ActionTime int64 `yaml:"action_time,omitempty"`
|
|
ActorDecision string `yaml:"actor_decision,omitempty"`
|
|
ActorUserId string `yaml:"actor_user_id,omitempty"`
|
|
ActorUsername string `yaml:"actor_username,omitempty"`
|
|
}
|
|
|
|
// FlaggedPostReportMetadata is the on-disk shape for report_metadata.yaml.
|
|
type FlaggedPostReportMetadata struct {
|
|
GeneratedByUserID string `yaml:"generated_by_user_id"`
|
|
GeneratedByUsername string `yaml:"generated_by_username"`
|
|
Timestamp int64 `yaml:"timestamp"`
|
|
ReportVersion string `yaml:"report_version"`
|
|
}
|