From a9ba052207df5dd2bff2c07a64b0b3e08b6e382b Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Mon, 29 Jun 2020 21:04:29 +0530 Subject: [PATCH] MM-26206: Add GroupMentions permissions in default channel admin (#14838) * MM-26206: Add GroupMentions permissions in default channel admin This permission was skipped from the default permissions function. Which led to a bug where permissions reset would not bring back this permission to the different roles. * Added tests Co-authored-by: Mattermod --- app/app_test.go | 5 ++++- app/permissions_test.go | 4 +++- model/role.go | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/app_test.go b/app/app_test.go index 3bf8e3c624..d892d28630 100644 --- a/app/app_test.go +++ b/app/app_test.go @@ -111,6 +111,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) { }, "channel_admin": { model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, + model.PERMISSION_USE_GROUP_MENTIONS.Id, }, "team_user": { model.PERMISSION_LIST_TEAM_CHANNELS.Id, @@ -229,6 +230,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) { model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS.Id, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, + model.PERMISSION_USE_GROUP_MENTIONS.Id, model.PERMISSION_EDIT_POST.Id, }, } @@ -239,7 +241,6 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) { assert.Nil(t, err) assert.Equal(t, role.Permissions, permissions) } - // Add a license and change the policy config. restrictPublicChannel := *th.App.Config().TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPublicChannelManagement restrictPrivateChannel := *th.App.Config().TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPrivateChannelManagement @@ -300,6 +301,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) { }, "channel_admin": { model.PERMISSION_MANAGE_CHANNEL_ROLES.Id, + model.PERMISSION_USE_GROUP_MENTIONS.Id, }, "team_user": { model.PERMISSION_LIST_TEAM_CHANNELS.Id, @@ -420,6 +422,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) { model.PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS.Id, model.PERMISSION_MANAGE_INCOMING_WEBHOOKS.Id, model.PERMISSION_MANAGE_OUTGOING_WEBHOOKS.Id, + model.PERMISSION_USE_GROUP_MENTIONS.Id, model.PERMISSION_EDIT_POST.Id, }, } diff --git a/app/permissions_test.go b/app/permissions_test.go index 1bf57a98b2..a054ab8eaa 100644 --- a/app/permissions_test.go +++ b/app/permissions_test.go @@ -255,7 +255,7 @@ func TestImportPermissions_schemeDeletedOnRoleFailure(t *testing.T) { } -func TestEmojiMigration(t *testing.T) { +func TestMigration(t *testing.T) { th := Setup(t) defer th.TearDown() @@ -264,6 +264,7 @@ func TestEmojiMigration(t *testing.T) { assert.Contains(t, role.Permissions, model.PERMISSION_CREATE_EMOJIS.Id) assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_EMOJIS.Id) assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_OTHERS_EMOJIS.Id) + assert.Contains(t, role.Permissions, model.PERMISSION_USE_GROUP_MENTIONS.Id) th.App.ResetPermissionsSystem() @@ -272,6 +273,7 @@ func TestEmojiMigration(t *testing.T) { assert.Contains(t, role.Permissions, model.PERMISSION_CREATE_EMOJIS.Id) assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_EMOJIS.Id) assert.Contains(t, role.Permissions, model.PERMISSION_DELETE_OTHERS_EMOJIS.Id) + assert.Contains(t, role.Permissions, model.PERMISSION_USE_GROUP_MENTIONS.Id) } func withMigrationMarkedComplete(th *TestHelper, f func()) { diff --git a/model/role.go b/model/role.go index 31ebfed1b9..38ac1ef7ef 100644 --- a/model/role.go +++ b/model/role.go @@ -422,6 +422,7 @@ func MakeDefaultRoles() map[string]*Role { Description: "authentication.roles.channel_admin.description", Permissions: []string{ PERMISSION_MANAGE_CHANNEL_ROLES.Id, + PERMISSION_USE_GROUP_MENTIONS.Id, }, SchemeManaged: true, BuiltIn: true,