mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Adds an exported const string that can be used by plugins to signal a client that the incoming post should be dismissed, instead of the current behavior which just leaves it pending.
This commit is contained in:
@@ -236,7 +236,11 @@ func (a *App) CreatePost(post *model.Post, channel *model.Channel, triggerWebhoo
|
||||
pluginsEnvironment.RunMultiPluginHook(func(hooks plugin.Hooks) bool {
|
||||
replacementPost, rejectionReason := hooks.MessageWillBePosted(pluginContext, post)
|
||||
if rejectionReason != "" {
|
||||
rejectionError = model.NewAppError("createPost", "Post rejected by plugin. "+rejectionReason, nil, "", http.StatusBadRequest)
|
||||
id := "Post rejected by plugin. " + rejectionReason
|
||||
if rejectionReason == plugin.DismissPostError {
|
||||
id = plugin.DismissPostError
|
||||
}
|
||||
rejectionError = model.NewAppError("createPost", id, nil, "", http.StatusBadRequest)
|
||||
return false
|
||||
}
|
||||
if replacementPost != nil {
|
||||
@@ -245,6 +249,7 @@ func (a *App) CreatePost(post *model.Post, channel *model.Channel, triggerWebhoo
|
||||
|
||||
return true
|
||||
}, plugin.MessageWillBePostedId)
|
||||
|
||||
if rejectionError != nil {
|
||||
return nil, rejectionError
|
||||
}
|
||||
|
||||
@@ -36,6 +36,11 @@ const (
|
||||
TotalHooksId = iota
|
||||
)
|
||||
|
||||
const (
|
||||
// DismissPostError dismisses a pending post when the error is returned from MessageWillBePosted.
|
||||
DismissPostError = "plugin.message_will_be_posted.dismiss_post"
|
||||
)
|
||||
|
||||
// Hooks describes the methods a plugin may implement to automatically receive the corresponding
|
||||
// event.
|
||||
//
|
||||
@@ -90,6 +95,7 @@ type Hooks interface {
|
||||
// To reject a post, return an non-empty string describing why the post was rejected.
|
||||
// To modify the post, return the replacement, non-nil *model.Post and an empty string.
|
||||
// To allow the post without modification, return a nil *model.Post and an empty string.
|
||||
// To dismiss the post, return a nil *model.Post and the const DismissPostError string.
|
||||
//
|
||||
// If you don't need to modify or reject posts, use MessageHasBeenPosted instead.
|
||||
//
|
||||
|
||||
@@ -296,6 +296,7 @@ func (s *SqlPostStore) Get(id string) (*model.PostList, *model.AppError) {
|
||||
|
||||
for _, p := range posts {
|
||||
pl.AddPost(p)
|
||||
pl.AddOrder(p.Id)
|
||||
}
|
||||
|
||||
return pl, nil
|
||||
|
||||
Reference in New Issue
Block a user