summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
Diffstat (limited to 'model')
-rw-r--r--model/bundle_info.go9
-rw-r--r--model/client4.go8
-rw-r--r--model/config.go4
-rw-r--r--model/emoji.go8
-rw-r--r--model/emoji_test.go5
-rw-r--r--model/plugin_status.go22
-rw-r--r--model/plugins_response.go1
-rw-r--r--model/user.go1
-rw-r--r--model/user_test.go1
-rw-r--r--model/websocket_message.go6
10 files changed, 36 insertions, 29 deletions
diff --git a/model/bundle_info.go b/model/bundle_info.go
index 6965159cc..7cb06701a 100644
--- a/model/bundle_info.go
+++ b/model/bundle_info.go
@@ -3,6 +3,8 @@
package model
+import "github.com/mattermost/mattermost-server/mlog"
+
type BundleInfo struct {
Path string
@@ -11,6 +13,13 @@ type BundleInfo struct {
ManifestError error
}
+func (b *BundleInfo) WrapLogger(logger *mlog.Logger) *mlog.Logger {
+ if b.Manifest != nil {
+ return logger.With(mlog.String("plugin_id", b.Manifest.Id))
+ }
+ return logger.With(mlog.String("plugin_path", b.Path))
+}
+
// Returns bundle info for the given path. The return value is never nil.
func BundleInfoForPath(path string) *BundleInfo {
m, mpath, err := FindManifest(path)
diff --git a/model/client4.go b/model/client4.go
index 3a93a9541..d34354715 100644
--- a/model/client4.go
+++ b/model/client4.go
@@ -3701,8 +3701,8 @@ func (c *Client4) GetWebappPlugins() ([]*Manifest, *Response) {
// ActivatePlugin will activate an plugin installed.
// WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.
-func (c *Client4) ActivatePlugin(id string) (bool, *Response) {
- if r, err := c.DoApiPost(c.GetPluginRoute(id)+"/activate", ""); err != nil {
+func (c *Client4) EnablePlugin(id string) (bool, *Response) {
+ if r, err := c.DoApiPost(c.GetPluginRoute(id)+"/enable", ""); err != nil {
return false, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
@@ -3712,8 +3712,8 @@ func (c *Client4) ActivatePlugin(id string) (bool, *Response) {
// DeactivatePlugin will deactivate an active plugin.
// WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.
-func (c *Client4) DeactivatePlugin(id string) (bool, *Response) {
- if r, err := c.DoApiPost(c.GetPluginRoute(id)+"/deactivate", ""); err != nil {
+func (c *Client4) DisablePlugin(id string) (bool, *Response) {
+ if r, err := c.DoApiPost(c.GetPluginRoute(id)+"/disable", ""); err != nil {
return false, BuildErrorResponse(r, err)
} else {
defer closeBody(r)
diff --git a/model/config.go b/model/config.go
index 1388f896f..7c9643b75 100644
--- a/model/config.go
+++ b/model/config.go
@@ -1727,7 +1727,7 @@ type PluginSettings struct {
EnableUploads *bool
Directory *string
ClientDirectory *string
- Plugins map[string]interface{}
+ Plugins map[string]map[string]interface{}
PluginStates map[string]*PluginState
}
@@ -1757,7 +1757,7 @@ func (s *PluginSettings) SetDefaults() {
}
if s.Plugins == nil {
- s.Plugins = make(map[string]interface{})
+ s.Plugins = make(map[string]map[string]interface{})
}
if s.PluginStates == nil {
diff --git a/model/emoji.go b/model/emoji.go
index 78a266386..f14af89df 100644
--- a/model/emoji.go
+++ b/model/emoji.go
@@ -41,11 +41,15 @@ func (emoji *Emoji) IsValid() *AppError {
return NewAppError("Emoji.IsValid", "model.emoji.update_at.app_error", nil, "id="+emoji.Id, http.StatusBadRequest)
}
- if len(emoji.CreatorId) != 26 {
+ if len(emoji.CreatorId) > 26 {
return NewAppError("Emoji.IsValid", "model.emoji.user_id.app_error", nil, "", http.StatusBadRequest)
}
- if len(emoji.Name) == 0 || len(emoji.Name) > EMOJI_NAME_MAX_LENGTH || !IsValidAlphaNumHyphenUnderscore(emoji.Name, false) || inSystemEmoji(emoji.Name) {
+ return IsValidEmojiName(emoji.Name)
+}
+
+func IsValidEmojiName(name string) *AppError {
+ if len(name) == 0 || len(name) > EMOJI_NAME_MAX_LENGTH || !IsValidAlphaNumHyphenUnderscore(name, false) || inSystemEmoji(name) {
return NewAppError("Emoji.IsValid", "model.emoji.name.app_error", nil, "", http.StatusBadRequest)
}
diff --git a/model/emoji_test.go b/model/emoji_test.go
index 95abe37c6..50d741214 100644
--- a/model/emoji_test.go
+++ b/model/emoji_test.go
@@ -40,11 +40,6 @@ func TestEmojiIsValid(t *testing.T) {
}
emoji.UpdateAt = 1234
- emoji.CreatorId = strings.Repeat("1", 25)
- if err := emoji.IsValid(); err == nil {
- t.Fatal()
- }
-
emoji.CreatorId = strings.Repeat("1", 27)
if err := emoji.IsValid(); err == nil {
t.Fatal()
diff --git a/model/plugin_status.go b/model/plugin_status.go
index 1ae64ff89..db2764028 100644
--- a/model/plugin_status.go
+++ b/model/plugin_status.go
@@ -10,24 +10,22 @@ import (
const (
PluginStateNotRunning = 0
- PluginStateStarting = 1
+ PluginStateStarting = 1 // unused by server
PluginStateRunning = 2
PluginStateFailedToStart = 3
- PluginStateFailedToStayRunning = 4
- PluginStateStopping = 5
+ PluginStateFailedToStayRunning = 4 // unused by server
+ PluginStateStopping = 5 // unused by server
)
// PluginStatus provides a cluster-aware view of installed plugins.
type PluginStatus struct {
- PluginId string `json:"plugin_id"`
- ClusterId string `json:"cluster_id"`
- PluginPath string `json:"plugin_path"`
- State int `json:"state"`
- IsSandboxed bool `json:"is_sandboxed"`
- IsPrepackaged bool `json:"is_prepackaged"`
- Name string `json:"name"`
- Description string `json:"description"`
- Version string `json:"version"`
+ PluginId string `json:"plugin_id"`
+ ClusterId string `json:"cluster_id"`
+ PluginPath string `json:"plugin_path"`
+ State int `json:"state"`
+ Name string `json:"name"`
+ Description string `json:"description"`
+ Version string `json:"version"`
}
type PluginStatuses []*PluginStatus
diff --git a/model/plugins_response.go b/model/plugins_response.go
index b6c01b642..177cfe6c8 100644
--- a/model/plugins_response.go
+++ b/model/plugins_response.go
@@ -10,7 +10,6 @@ import (
type PluginInfo struct {
Manifest
- Prepackaged bool `json:"prepackaged"`
}
type PluginsResponse struct {
diff --git a/model/user.go b/model/user.go
index c4dbfb6d0..f02b5afa1 100644
--- a/model/user.go
+++ b/model/user.go
@@ -565,6 +565,7 @@ var restrictedUsernames = []string{
"all",
"channel",
"matterbot",
+ "system",
}
func IsValidUsername(s string) bool {
diff --git a/model/user_test.go b/model/user_test.go
index 645eaadff..a1953a40d 100644
--- a/model/user_test.go
+++ b/model/user_test.go
@@ -272,6 +272,7 @@ var usernames = []struct {
{"spin'punch", false},
{"spin*punch", false},
{"all", false},
+ {"system", false},
}
func TestValidUsername(t *testing.T) {
diff --git a/model/websocket_message.go b/model/websocket_message.go
index 31b16d1a7..ea8872d76 100644
--- a/model/websocket_message.go
+++ b/model/websocket_message.go
@@ -44,9 +44,9 @@ const (
WEBSOCKET_EVENT_RESPONSE = "response"
WEBSOCKET_EVENT_EMOJI_ADDED = "emoji_added"
WEBSOCKET_EVENT_CHANNEL_VIEWED = "channel_viewed"
- WEBSOCKET_EVENT_PLUGIN_ACTIVATED = "plugin_activated" // EXPERIMENTAL - SUBJECT TO CHANGE
- WEBSOCKET_EVENT_PLUGIN_DEACTIVATED = "plugin_deactivated" // EXPERIMENTAL - SUBJECT TO CHANGE
- WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed" // EXPERIMENTAL - SUBJECT TO CHANGE
+ WEBSOCKET_EVENT_PLUGIN_STATUSES_CHANGED = "plugin_statuses_changed"
+ WEBSOCKET_EVENT_PLUGIN_ENABLED = "plugin_enabled"
+ WEBSOCKET_EVENT_PLUGIN_DISABLED = "plugin_disabled"
WEBSOCKET_EVENT_ROLE_UPDATED = "role_updated"
WEBSOCKET_EVENT_LICENSE_CHANGED = "license_changed"
WEBSOCKET_EVENT_CONFIG_CHANGED = "config_changed"