2017-08-16 14:37:37 -07:00
|
|
|
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
|
2016-05-21 05:14:08 -07:00
|
|
|
// See License.txt for license information.
|
|
|
|
|
|
|
|
package model
|
|
|
|
|
|
|
|
import (
|
2017-08-16 14:37:37 -07:00
|
|
|
"regexp"
|
2016-05-21 05:14:08 -07:00
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
type CompliancePost struct {
|
|
|
|
|
|
|
|
// From Team
|
|
|
|
TeamName string
|
|
|
|
TeamDisplayName string
|
|
|
|
|
|
|
|
// From Channel
|
|
|
|
ChannelName string
|
|
|
|
ChannelDisplayName string
|
|
|
|
|
|
|
|
// From User
|
|
|
|
UserUsername string
|
|
|
|
UserEmail string
|
|
|
|
UserNickname string
|
|
|
|
|
|
|
|
// From Post
|
|
|
|
PostId string
|
|
|
|
PostCreateAt int64
|
|
|
|
PostUpdateAt int64
|
|
|
|
PostDeleteAt int64
|
|
|
|
PostRootId string
|
|
|
|
PostParentId string
|
|
|
|
PostOriginalId string
|
|
|
|
PostMessage string
|
|
|
|
PostType string
|
|
|
|
PostProps string
|
|
|
|
PostHashtags string
|
2016-11-12 13:00:53 -08:00
|
|
|
PostFileIds string
|
2016-05-21 05:14:08 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func CompliancePostHeader() []string {
|
|
|
|
return []string{
|
|
|
|
"TeamName",
|
|
|
|
"TeamDisplayName",
|
|
|
|
|
|
|
|
"ChannelName",
|
|
|
|
"ChannelDisplayName",
|
|
|
|
|
|
|
|
"UserUsername",
|
|
|
|
"UserEmail",
|
|
|
|
"UserNickname",
|
|
|
|
|
|
|
|
"PostId",
|
|
|
|
"PostCreateAt",
|
|
|
|
"PostUpdateAt",
|
|
|
|
"PostDeleteAt",
|
|
|
|
"PostRootId",
|
|
|
|
"PostParentId",
|
|
|
|
"PostOriginalId",
|
|
|
|
"PostMessage",
|
|
|
|
"PostType",
|
|
|
|
"PostProps",
|
|
|
|
"PostHashtags",
|
2016-11-12 13:00:53 -08:00
|
|
|
"PostFileIds",
|
2016-05-21 05:14:08 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-08-16 14:37:37 -07:00
|
|
|
func cleanComplianceStrings(in string) string {
|
|
|
|
if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched {
|
|
|
|
return "'" + in
|
|
|
|
|
|
|
|
} else {
|
|
|
|
return in
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-05-21 05:14:08 -07:00
|
|
|
func (me *CompliancePost) Row() []string {
|
|
|
|
|
|
|
|
postDeleteAt := ""
|
|
|
|
if me.PostDeleteAt > 0 {
|
|
|
|
postDeleteAt = time.Unix(0, me.PostDeleteAt*int64(1000*1000)).Format(time.RFC3339)
|
|
|
|
}
|
|
|
|
|
|
|
|
postUpdateAt := ""
|
|
|
|
if me.PostUpdateAt != me.PostCreateAt {
|
|
|
|
postUpdateAt = time.Unix(0, me.PostUpdateAt*int64(1000*1000)).Format(time.RFC3339)
|
|
|
|
}
|
|
|
|
|
|
|
|
return []string{
|
2017-08-16 14:37:37 -07:00
|
|
|
cleanComplianceStrings(me.TeamName),
|
|
|
|
cleanComplianceStrings(me.TeamDisplayName),
|
2016-05-21 05:14:08 -07:00
|
|
|
|
2017-08-16 14:37:37 -07:00
|
|
|
cleanComplianceStrings(me.ChannelName),
|
|
|
|
cleanComplianceStrings(me.ChannelDisplayName),
|
2016-05-21 05:14:08 -07:00
|
|
|
|
2017-08-16 14:37:37 -07:00
|
|
|
cleanComplianceStrings(me.UserUsername),
|
|
|
|
cleanComplianceStrings(me.UserEmail),
|
|
|
|
cleanComplianceStrings(me.UserNickname),
|
2016-05-21 05:14:08 -07:00
|
|
|
|
|
|
|
me.PostId,
|
|
|
|
time.Unix(0, me.PostCreateAt*int64(1000*1000)).Format(time.RFC3339),
|
|
|
|
postUpdateAt,
|
|
|
|
postDeleteAt,
|
|
|
|
|
|
|
|
me.PostRootId,
|
|
|
|
me.PostParentId,
|
|
|
|
me.PostOriginalId,
|
2017-08-16 14:37:37 -07:00
|
|
|
cleanComplianceStrings(me.PostMessage),
|
2016-05-21 05:14:08 -07:00
|
|
|
me.PostType,
|
|
|
|
me.PostProps,
|
|
|
|
me.PostHashtags,
|
2016-11-12 13:00:53 -08:00
|
|
|
me.PostFileIds,
|
2016-05-21 05:14:08 -07:00
|
|
|
}
|
|
|
|
}
|