diff options
author | JoramWilander <jwawilander@gmail.com> | 2018-06-27 16:56:50 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2018-06-27 16:56:50 -0400 |
commit | 88c5e469ca869d9e8ceadb0f2b03e86005102f24 (patch) | |
tree | bbb1b4cc1312879476f222940651e4d3e763da9e /model | |
parent | d7976549a0b45a42c04ac043a15677b7ca1228e9 (diff) | |
parent | 437f9f5b64ddb4e1f84e6c4e993120d074001777 (diff) | |
download | chat-88c5e469ca869d9e8ceadb0f2b03e86005102f24.tar.gz chat-88c5e469ca869d9e8ceadb0f2b03e86005102f24.tar.bz2 chat-88c5e469ca869d9e8ceadb0f2b03e86005102f24.zip |
Merge branch 'master' into plugins-2
Diffstat (limited to 'model')
-rw-r--r-- | model/channel.go | 43 | ||||
-rw-r--r-- | model/channel_mentions.go | 28 | ||||
-rw-r--r-- | model/config.go | 15 | ||||
-rw-r--r-- | model/gitlab/gitlab.go | 16 | ||||
-rw-r--r-- | model/post.go | 17 |
5 files changed, 74 insertions, 45 deletions
diff --git a/model/channel.go b/model/channel.go index 5617240e6..7a57496ae 100644 --- a/model/channel.go +++ b/model/channel.go @@ -32,21 +32,22 @@ const ( ) type Channel struct { - Id string `json:"id"` - CreateAt int64 `json:"create_at"` - UpdateAt int64 `json:"update_at"` - DeleteAt int64 `json:"delete_at"` - TeamId string `json:"team_id"` - Type string `json:"type"` - DisplayName string `json:"display_name"` - Name string `json:"name"` - Header string `json:"header"` - Purpose string `json:"purpose"` - LastPostAt int64 `json:"last_post_at"` - TotalMsgCount int64 `json:"total_msg_count"` - ExtraUpdateAt int64 `json:"extra_update_at"` - CreatorId string `json:"creator_id"` - SchemeId *string `json:"scheme_id"` + Id string `json:"id"` + CreateAt int64 `json:"create_at"` + UpdateAt int64 `json:"update_at"` + DeleteAt int64 `json:"delete_at"` + TeamId string `json:"team_id"` + Type string `json:"type"` + DisplayName string `json:"display_name"` + Name string `json:"name"` + Header string `json:"header"` + Purpose string `json:"purpose"` + LastPostAt int64 `json:"last_post_at"` + TotalMsgCount int64 `json:"total_msg_count"` + ExtraUpdateAt int64 `json:"extra_update_at"` + CreatorId string `json:"creator_id"` + SchemeId *string `json:"scheme_id"` + Props map[string]interface{} `json:"props" db:"-"` } type ChannelPatch struct { @@ -163,6 +164,18 @@ func (o *Channel) Patch(patch *ChannelPatch) { } } +func (o *Channel) MakeNonNil() { + if o.Props == nil { + o.Props = make(map[string]interface{}) + } +} + +func (o *Channel) AddProp(key string, value interface{}) { + o.MakeNonNil() + + o.Props[key] = value +} + func GetDMNameFromIds(userId1, userId2 string) string { if userId1 > userId2 { return userId2 + "__" + userId1 diff --git a/model/channel_mentions.go b/model/channel_mentions.go new file mode 100644 index 000000000..795ec379c --- /dev/null +++ b/model/channel_mentions.go @@ -0,0 +1,28 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +package model + +import ( + "regexp" + "strings" +) + +var channelMentionRegexp = regexp.MustCompile(`\B~[a-zA-Z0-9\-_]+`) + +func ChannelMentions(message string) []string { + var names []string + + if strings.Contains(message, "~") { + alreadyMentioned := make(map[string]bool) + for _, match := range channelMentionRegexp.FindAllString(message, -1) { + name := match[1:] + if !alreadyMentioned[name] { + names = append(names, name) + alreadyMentioned[name] = true + } + } + } + + return names +} diff --git a/model/config.go b/model/config.go index 868bb01d5..ce66f2f05 100644 --- a/model/config.go +++ b/model/config.go @@ -210,6 +210,9 @@ type ServiceSettings struct { WebserverMode *string EnableCustomEmoji *bool EnableEmojiPicker *bool + EnableGifPicker *bool + GfycatApiKey *string + GfycatApiSecret *string RestrictCustomEmojiCreation *string RestrictPostDelete *string AllowEditPost *string @@ -413,6 +416,18 @@ func (s *ServiceSettings) SetDefaults() { s.EnableEmojiPicker = NewBool(true) } + if s.EnableGifPicker == nil { + s.EnableGifPicker = NewBool(true) + } + + if s.GfycatApiKey == nil { + s.GfycatApiKey = NewString("") + } + + if s.GfycatApiSecret == nil { + s.GfycatApiSecret = NewString("") + } + if s.RestrictCustomEmojiCreation == nil { s.RestrictCustomEmojiCreation = NewString(RESTRICT_EMOJI_CREATION_ALL) } diff --git a/model/gitlab/gitlab.go b/model/gitlab/gitlab.go index 7e0cb10af..f0a388b6a 100644 --- a/model/gitlab/gitlab.go +++ b/model/gitlab/gitlab.go @@ -47,7 +47,7 @@ func userFromGitLabUser(glu *GitLabUser) *model.User { user.FirstName = glu.Name } user.Email = glu.Email - userId := strconv.FormatInt(glu.Id, 10) + userId := glu.getAuthData() user.AuthData = &userId user.AuthService = model.USER_AUTH_SERVICE_GITLAB @@ -90,10 +90,6 @@ func (glu *GitLabUser) getAuthData() string { return strconv.FormatInt(glu.Id, 10) } -func (m *GitLabProvider) GetIdentifier() string { - return model.USER_AUTH_SERVICE_GITLAB -} - func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User { glu := gitLabUserFromJson(data) if glu.IsValid() { @@ -102,13 +98,3 @@ func (m *GitLabProvider) GetUserFromJson(data io.Reader) *model.User { return &model.User{} } - -func (m *GitLabProvider) GetAuthDataFromJson(data io.Reader) string { - glu := gitLabUserFromJson(data) - - if glu.IsValid() { - return glu.getAuthData() - } - - return "" -} diff --git a/model/post.go b/model/post.go index 3d7a31ab5..1dd0a4db6 100644 --- a/model/post.go +++ b/model/post.go @@ -7,7 +7,6 @@ import ( "encoding/json" "io" "net/http" - "regexp" "sort" "strings" "unicode/utf8" @@ -343,20 +342,8 @@ func PostPatchFromJson(data io.Reader) *PostPatch { return &post } -var channelMentionRegexp = regexp.MustCompile(`\B~[a-zA-Z0-9\-_]+`) - -func (o *Post) ChannelMentions() (names []string) { - if strings.Contains(o.Message, "~") { - alreadyMentioned := make(map[string]bool) - for _, match := range channelMentionRegexp.FindAllString(o.Message, -1) { - name := match[1:] - if !alreadyMentioned[name] { - names = append(names, name) - alreadyMentioned[name] = true - } - } - } - return +func (o *Post) ChannelMentions() []string { + return ChannelMentions(o.Message) } func (r *PostActionIntegrationRequest) ToJson() string { |