From 6b7a35b653cbb3fdcd27a542c8a7faec4352d153 Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Thu, 5 Jul 2018 03:17:43 -0400 Subject: [PATCH 1/3] MM-11118: disallow deleting direct or group channels (#9054) --- api4/channel.go | 5 +++++ api4/channel_test.go | 38 ++++++++++++++++++++++++++++++++++++++ i18n/en.json | 4 ++++ 3 files changed, 47 insertions(+) diff --git a/api4/channel.go b/api4/channel.go index cb9112677d..1afadf39b8 100644 --- a/api4/channel.go +++ b/api4/channel.go @@ -638,6 +638,11 @@ func deleteChannel(c *Context, w http.ResponseWriter, r *http.Request) { return } + if channel.Type == model.CHANNEL_DIRECT || channel.Type == model.CHANNEL_GROUP { + c.Err = model.NewAppError("deleteChannel", "api.channel.delete_channel.type.invalid", nil, "", http.StatusBadRequest) + return + } + if channel.Type == model.CHANNEL_OPEN && !c.App.SessionHasPermissionToChannel(c.Session, channel.Id, model.PERMISSION_DELETE_PUBLIC_CHANNEL) { c.SetPermissionError(model.PERMISSION_DELETE_PUBLIC_CHANNEL) return diff --git a/api4/channel_test.go b/api4/channel_test.go index d66c2a640e..ab751f1517 100644 --- a/api4/channel_test.go +++ b/api4/channel_test.go @@ -16,6 +16,7 @@ import ( "github.com/mattermost/mattermost-server/model" "github.com/mattermost/mattermost-server/utils" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestCreateChannel(t *testing.T) { @@ -320,6 +321,23 @@ func TestCreateDirectChannel(t *testing.T) { CheckNoError(t, resp) } +func TestDeleteDirectChannel(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer th.TearDown() + Client := th.Client + user := th.BasicUser + user2 := th.BasicUser2 + + rgc, resp := Client.CreateDirectChannel(user.Id, user2.Id) + CheckNoError(t, resp) + CheckCreatedStatus(t, resp) + require.NotNil(t, rgc, "should have created a direct channel") + + deleted, resp := Client.DeleteChannel(rgc.Id) + CheckErrorMessage(t, resp, "api.channel.delete_channel.type.invalid") + require.False(t, deleted, "should not have been able to delete direct channel.") +} + func TestCreateGroupChannel(t *testing.T) { th := Setup().InitBasic().InitSystemAdmin() defer th.TearDown() @@ -392,6 +410,26 @@ func TestCreateGroupChannel(t *testing.T) { CheckNoError(t, resp) } +func TestDeleteGroupChannel(t *testing.T) { + th := Setup().InitBasic().InitSystemAdmin() + defer th.TearDown() + Client := th.Client + user := th.BasicUser + user2 := th.BasicUser2 + user3 := th.CreateUser() + + userIds := []string{user.Id, user2.Id, user3.Id} + + rgc, resp := Client.CreateGroupChannel(userIds) + CheckNoError(t, resp) + CheckCreatedStatus(t, resp) + require.NotNil(t, rgc, "should have created a group channel") + + deleted, resp := Client.DeleteChannel(rgc.Id) + CheckErrorMessage(t, resp, "api.channel.delete_channel.type.invalid") + require.False(t, deleted, "should not have been able to delete group channel.") +} + func TestGetChannel(t *testing.T) { th := Setup().InitBasic().InitSystemAdmin() defer th.TearDown() diff --git a/i18n/en.json b/i18n/en.json index 36bf8772b0..730fc2b638 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -159,6 +159,10 @@ "id": "api.channel.delete_channel.deleted.app_error", "translation": "The channel has been archived or deleted" }, + { + "id": "api.channel.delete_channel.type.invalid", + "translation": "Cannot delete direct or group message channels" + }, { "id": "api.channel.join_channel.already_deleted.app_error", "translation": "Channel is already deleted" From 8d3ea1bbf6f6ef6164d26b6801c46cfe7f936fa1 Mon Sep 17 00:00:00 2001 From: Asaad Mahmood Date: Thu, 5 Jul 2018 12:18:26 +0500 Subject: [PATCH 2/3] MM-10766 - Replacing default profile image font (#8955) * Updating default profile pic font * Updating profile image font * Updating test * Use new default font if configured for old one * Update OFL.txt --- app/user.go | 25 +++++++---- app/user_test.go | 2 +- config/default.json | 2 +- fonts/OFL.txt | 95 ++++++++++++++++++++++++++++++++++++++++++ fonts/luximbi.ttf | Bin 69872 -> 0 bytes fonts/nunito-bold.ttf | Bin 0 -> 115852 bytes model/config.go | 4 +- 7 files changed, 117 insertions(+), 11 deletions(-) create mode 100755 fonts/OFL.txt delete mode 100644 fonts/luximbi.ttf create mode 100755 fonts/nunito-bold.ttf diff --git a/app/user.go b/app/user.go index b00ef19efd..acd3ee9aa2 100644 --- a/app/user.go +++ b/app/user.go @@ -24,6 +24,7 @@ import ( "github.com/disintegration/imaging" "github.com/golang/freetype" + "github.com/golang/freetype/truetype" "github.com/mattermost/mattermost-server/einterfaces" "github.com/mattermost/mattermost-server/mlog" "github.com/mattermost/mattermost-server/model" @@ -696,12 +697,7 @@ func CreateProfileImage(username string, userId string, initialFont string) ([]b initial := string(strings.ToUpper(username)[0]) - fontDir, _ := utils.FindDir("fonts") - fontBytes, err := ioutil.ReadFile(filepath.Join(fontDir, initialFont)) - if err != nil { - return nil, model.NewAppError("CreateProfileImage", "api.user.create_profile_image.default_font.app_error", nil, err.Error(), http.StatusInternalServerError) - } - font, err := freetype.ParseFont(fontBytes) + font, err := getFont(initialFont) if err != nil { return nil, model.NewAppError("CreateProfileImage", "api.user.create_profile_image.default_font.app_error", nil, err.Error(), http.StatusInternalServerError) } @@ -719,7 +715,7 @@ func CreateProfileImage(username string, userId string, initialFont string) ([]b c.SetDst(dstImg) c.SetSrc(srcImg) - pt := freetype.Pt(IMAGE_PROFILE_PIXEL_DIMENSION/6, IMAGE_PROFILE_PIXEL_DIMENSION*2/3) + pt := freetype.Pt(IMAGE_PROFILE_PIXEL_DIMENSION/5, IMAGE_PROFILE_PIXEL_DIMENSION*2/3) _, err = c.DrawString(initial, pt) if err != nil { return nil, model.NewAppError("CreateProfileImage", "api.user.create_profile_image.initial.app_error", nil, err.Error(), http.StatusInternalServerError) @@ -734,6 +730,21 @@ func CreateProfileImage(username string, userId string, initialFont string) ([]b } } +func getFont(initialFont string) (*truetype.Font, error) { + // Some people have the old default font still set, so just treat that as if they're using the new default + if initialFont == "luximbi.ttf" { + initialFont = "nunito-bold.ttf" + } + + fontDir, _ := utils.FindDir("fonts") + fontBytes, err := ioutil.ReadFile(filepath.Join(fontDir, initialFont)) + if err != nil { + return nil, err + } + + return freetype.ParseFont(fontBytes) +} + func (a *App) GetProfileImage(user *model.User) ([]byte, bool, *model.AppError) { var img []byte readFailed := false diff --git a/app/user_test.go b/app/user_test.go index 7952eaa1f9..959455121e 100644 --- a/app/user_test.go +++ b/app/user_test.go @@ -97,7 +97,7 @@ func TestCreateOAuthUser(t *testing.T) { } func TestCreateProfileImage(t *testing.T) { - b, err := CreateProfileImage("Corey Hulen", "eo1zkdr96pdj98pjmq8zy35wba", "luximbi.ttf") + b, err := CreateProfileImage("Corey Hulen", "eo1zkdr96pdj98pjmq8zy35wba", "nunito-bold.ttf") if err != nil { t.Fatal(err) } diff --git a/config/default.json b/config/default.json index 2bfef25cf5..a4487888ea 100644 --- a/config/default.json +++ b/config/default.json @@ -152,7 +152,7 @@ "Directory": "./data/", "EnablePublicLink": false, "PublicLinkSalt": "", - "InitialFont": "luximbi.ttf", + "InitialFont": "nunito-bold.ttf", "AmazonS3AccessKeyId": "", "AmazonS3SecretAccessKey": "", "AmazonS3Bucket": "", diff --git a/fonts/OFL.txt b/fonts/OFL.txt new file mode 100755 index 0000000000..2f3aa8de77 --- /dev/null +++ b/fonts/OFL.txt @@ -0,0 +1,95 @@ +Copyright 2014 The Nunito Project Authors (contact@sansoxygen.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + +The font was downloaded from https://fonts.google.com/specimen/Nunito?selection.family=Nunito:700 +Its source is available at https://github.com/google/fonts/blob/master/ofl/nunito/Nunito-Bold.ttf + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/fonts/luximbi.ttf b/fonts/luximbi.ttf deleted file mode 100644 index 734201bed16677bc6494af52a15b4c842bb60184..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69872 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 z
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 diff --git a/fonts/nunito-bold.ttf b/fonts/nunito-bold.ttf new file mode 100755 index 0000000000000000000000000000000000000000..d2037334825139850abeb130b66f86b52e5b48cf GIT binary patch literal 115852 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 z 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 literal 0 HcmV?d00001 diff --git a/model/config.go b/model/config.go index 7b3a197b57..7105af893b 100644 --- a/model/config.go +++ b/model/config.go @@ -774,8 +774,8 @@ func (s *FileSettings) SetDefaults() { } if s.InitialFont == "" { - // Defaults to "luximbi.ttf" - s.InitialFont = "luximbi.ttf" + // Defaults to "nunito-bold.ttf" + s.InitialFont = "nunito-bold.ttf" } if s.Directory == "" { From 0896b5c64ef224f0f8835b9727d1c1b94cbe7c29 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Fri, 6 Jul 2018 09:07:36 +0100 Subject: [PATCH 3/3] MM-11106: Allow systeadmin webook to post to read only town square. (#9051) --- app/webhook.go | 11 ++++++++++- web/web_test.go | 15 ++++++++++----- web/webhook_test.go | 29 +++++++++++++++++++++++------ 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/app/webhook.go b/app/webhook.go index c887fec97a..8926c94a8c 100644 --- a/app/webhook.go +++ b/app/webhook.go @@ -587,6 +587,8 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq hook = result.Data.(*model.IncomingWebhook) } + uchan := a.Srv.Store.User().Get(hook.UserId) + if len(req.Props) == 0 { req.Props = make(model.StringInterface) } @@ -637,8 +639,15 @@ func (a *App) HandleIncomingWebhook(hookId string, req *model.IncomingWebhookReq return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.channel_locked.app_error", nil, "", http.StatusForbidden) } + var user *model.User + if result := <-uchan; result.Err != nil { + return model.NewAppError("HandleIncomingWebhook", "web.incoming_webhook.user.app_error", nil, "err="+result.Err.Message, http.StatusForbidden) + } else { + user = result.Data.(*model.User) + } + if a.License() != nil && *a.Config().TeamSettings.ExperimentalTownSquareIsReadOnly && - channel.Name == model.DEFAULT_CHANNEL { + channel.Name == model.DEFAULT_CHANNEL && !a.RolesGrantPermission(user.GetRoles(), model.PERMISSION_MANAGE_SYSTEM.Id) { return model.NewAppError("HandleIncomingWebhook", "api.post.create_post.town_square_read_only", nil, "", http.StatusForbidden) } diff --git a/web/web_test.go b/web/web_test.go index b53ed96188..4befa8e37d 100644 --- a/web/web_test.go +++ b/web/web_test.go @@ -37,10 +37,13 @@ func StopTestStore() { } type TestHelper struct { - App *app.App - BasicUser *model.User - BasicChannel *model.Channel - BasicTeam *model.Team + App *app.App + + BasicUser *model.User + BasicChannel *model.Channel + BasicTeam *model.Team + + SystemAdminUser *model.User } func Setup() *TestHelper { @@ -77,7 +80,9 @@ func Setup() *TestHelper { } func (th *TestHelper) InitBasic() *TestHelper { - user, _ := th.App.CreateUser(&model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1", EmailVerified: true, Roles: model.SYSTEM_ADMIN_ROLE_ID}) + th.SystemAdminUser, _ = th.App.CreateUser(&model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1", EmailVerified: true, Roles: model.SYSTEM_ADMIN_ROLE_ID}) + + user, _ := th.App.CreateUser(&model.User{Email: model.NewId() + "success+test@simulator.amazonses.com", Nickname: "Corey Hulen", Password: "passwd1", EmailVerified: true, Roles: model.SYSTEM_USER_ROLE_ID}) team, _ := th.App.CreateTeam(&model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: user.Email, Type: model.TEAM_OPEN}) diff --git a/web/webhook_test.go b/web/webhook_test.go index 64ce7bf25c..07fca70edb 100644 --- a/web/webhook_test.go +++ b/web/webhook_test.go @@ -97,13 +97,30 @@ func TestIncomingWebhook(t *testing.T) { assert.True(t, resp.StatusCode == http.StatusOK) }) - t.Run("WebhookExperimentReadOnly", func(t *testing.T) { - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = false }) - _, err := http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL))) - assert.Nil(t, err, "Not read only") - - th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = true }) + t.Run("WebhookExperimentalReadOnly", func(t *testing.T) { th.App.SetLicense(model.NewTestLicense()) + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = true }) + + // Read only default channel should fail. + resp, err := http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL))) + require.Nil(t, err) + assert.True(t, resp.StatusCode != http.StatusOK) + + // None-default channel should still work. + resp, err = http.Post(url, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", th.BasicChannel.Name))) + require.Nil(t, err) + assert.True(t, resp.StatusCode == http.StatusOK) + + // System-Admin Owned Hook + adminHook, err := th.App.CreateIncomingWebhookForChannel(th.SystemAdminUser.Id, th.BasicChannel, &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}) + require.Nil(t, err) + adminUrl := ApiClient.Url + "/hooks/" + adminHook.Id + + resp, err = http.Post(adminUrl, "application/json", strings.NewReader(fmt.Sprintf("{\"text\":\"this is a test\", \"channel\":\"%s\"}", model.DEFAULT_CHANNEL))) + require.Nil(t, err) + assert.True(t, resp.StatusCode == http.StatusOK) + + th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.ExperimentalTownSquareIsReadOnly = false }) }) t.Run("WebhookAttachments", func(t *testing.T) {