[MM-36444] Manage config deprecations for 6.0 (#18035)
* removing deprecated stuff * removing deprecations and marking others for deprecations * removing some of the configs * partially remove ExperimentalChannelOrganization * fixing merge issues * moving default permissions to defaultroles function * removing experimentaltownsquare * removing old tests and remove legacysidebar config * fixing test * removing log * removing unused variables * MM-36444: Fix for renamed functions. * MM-36444: go mod tidy and go mod vendor. * MM-36444: Vendored go modules. * MM-36444: Removes UseExperimentalGossip config field from model. * Fix vendors * fixing test Co-authored-by: Benjamin Cooke <benjamincooke@Benjamins-MacBook-Pro.local> Co-authored-by: Mattermod <mattermod@users.noreply.github.com> Co-authored-by: Martin Kraft <martin@upspin.org> Co-authored-by: Claudio Costa <cstcld91@gmail.com>
Этот коммит содержится в:
238
app/app_test.go
238
app/app_test.go
@@ -186,25 +186,7 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, role.Permissions, permissions, fmt.Sprintf("role %q didn't match", name))
|
||||
}
|
||||
// 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
|
||||
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPublicChannelManagement = restrictPublicChannel
|
||||
})
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPrivateChannelManagement = restrictPrivateChannel
|
||||
})
|
||||
}()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPublicChannelManagement = model.PermissionsTeamAdmin
|
||||
})
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.TeamSettings.DEPRECATED_DO_NOT_USE_RestrictPrivateChannelManagement = model.PermissionsTeamAdmin
|
||||
})
|
||||
th.App.Srv().SetLicense(model.NewTestLicense())
|
||||
|
||||
// Check the migration doesn't change anything if run again.
|
||||
@@ -219,235 +201,15 @@ func TestDoAdvancedPermissionsMigration(t *testing.T) {
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions)
|
||||
}
|
||||
|
||||
// Reset the database
|
||||
th.ResetRoleMigration()
|
||||
|
||||
// Do the migration again with different policy config settings and a license.
|
||||
th.App.DoAdvancedPermissionsMigration()
|
||||
|
||||
// Check the role permissions.
|
||||
expected2 := map[string][]string{
|
||||
"channel_user": {
|
||||
model.PermissionReadChannel.Id,
|
||||
model.PermissionAddReaction.Id,
|
||||
model.PermissionRemoveReaction.Id,
|
||||
model.PermissionManagePublicChannelMembers.Id,
|
||||
model.PermissionUploadFile.Id,
|
||||
model.PermissionGetPublicLink.Id,
|
||||
model.PermissionCreatePost.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
model.PermissionUseSlashCommands.Id,
|
||||
model.PermissionDeletePublicChannel.Id,
|
||||
model.PermissionDeletePrivateChannel.Id,
|
||||
model.PermissionManagePrivateChannelMembers.Id,
|
||||
model.PermissionDeletePost.Id,
|
||||
model.PermissionEditPost.Id,
|
||||
},
|
||||
"channel_admin": {
|
||||
model.PermissionManageChannelRoles.Id,
|
||||
model.PermissionUseGroupMentions.Id,
|
||||
},
|
||||
"team_user": {
|
||||
model.PermissionListTeamChannels.Id,
|
||||
model.PermissionJoinPublicChannels.Id,
|
||||
model.PermissionReadPublicChannel.Id,
|
||||
model.PermissionViewTeam.Id,
|
||||
model.PermissionCreatePublicChannel.Id,
|
||||
model.PermissionCreatePrivateChannel.Id,
|
||||
model.PermissionInviteUser.Id,
|
||||
model.PermissionAddUserToTeam.Id,
|
||||
},
|
||||
"team_post_all": {
|
||||
model.PermissionCreatePost.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
},
|
||||
"team_post_all_public": {
|
||||
model.PermissionCreatePostPublic.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
},
|
||||
"team_admin": {
|
||||
model.PermissionRemoveUserFromTeam.Id,
|
||||
model.PermissionManageTeam.Id,
|
||||
model.PermissionImportTeam.Id,
|
||||
model.PermissionManageTeamRoles.Id,
|
||||
model.PermissionManageChannelRoles.Id,
|
||||
model.PermissionManageOthersIncomingWebhooks.Id,
|
||||
model.PermissionManageOthersOutgoingWebhooks.Id,
|
||||
model.PermissionManageSlashCommands.Id,
|
||||
model.PermissionManageOthersSlashCommands.Id,
|
||||
model.PermissionManageIncomingWebhooks.Id,
|
||||
model.PermissionManageOutgoingWebhooks.Id,
|
||||
model.PermissionConvertPublicChannelToPrivate.Id,
|
||||
model.PermissionConvertPrivateChannelToPublic.Id,
|
||||
model.PermissionManagePublicChannelProperties.Id,
|
||||
model.PermissionManagePrivateChannelProperties.Id,
|
||||
model.PermissionDeletePost.Id,
|
||||
model.PermissionDeleteOthersPosts.Id,
|
||||
},
|
||||
"system_user": {
|
||||
model.PermissionListPublicTeams.Id,
|
||||
model.PermissionJoinPublicTeams.Id,
|
||||
model.PermissionCreateDirectChannel.Id,
|
||||
model.PermissionCreateGroupChannel.Id,
|
||||
model.PermissionViewMembers.Id,
|
||||
model.PermissionCreateTeam.Id,
|
||||
},
|
||||
"system_post_all": {
|
||||
model.PermissionCreatePost.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
},
|
||||
"system_post_all_public": {
|
||||
model.PermissionCreatePostPublic.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
},
|
||||
"system_user_access_token": {
|
||||
model.PermissionCreateUserAccessToken.Id,
|
||||
model.PermissionReadUserAccessToken.Id,
|
||||
model.PermissionRevokeUserAccessToken.Id,
|
||||
},
|
||||
"system_admin": allPermissionIDs,
|
||||
}
|
||||
|
||||
roles3, err3 := th.App.GetRolesByNames(roleNames)
|
||||
assert.Nil(t, err3)
|
||||
assert.Equal(t, len(roles3), len(roleNames))
|
||||
|
||||
for name, permissions := range expected2 {
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions, fmt.Sprintf("'%v' did not have expected permissions", name))
|
||||
}
|
||||
|
||||
// Remove the license.
|
||||
th.App.Srv().SetLicense(nil)
|
||||
|
||||
// Do the migration again.
|
||||
th.ResetRoleMigration()
|
||||
th.App.DoAdvancedPermissionsMigration()
|
||||
|
||||
// Check the role permissions.
|
||||
roles4, err4 := th.App.GetRolesByNames(roleNames)
|
||||
assert.Nil(t, err4)
|
||||
assert.Equal(t, len(roles4), len(roleNames))
|
||||
|
||||
for name, permissions := range expected1 {
|
||||
role, err := th.App.GetRoleByName(context.Background(), name)
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, permissions, role.Permissions)
|
||||
}
|
||||
|
||||
// Check that the config setting for "always" and "time_limit" edit posts is updated correctly.
|
||||
th.ResetRoleMigration()
|
||||
|
||||
allowEditPost := *th.App.Config().ServiceSettings.DEPRECATED_DO_NOT_USE_AllowEditPost
|
||||
postEditTimeLimit := *th.App.Config().ServiceSettings.PostEditTimeLimit
|
||||
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_AllowEditPost = allowEditPost })
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.ServiceSettings.PostEditTimeLimit = postEditTimeLimit })
|
||||
}()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_AllowEditPost = "always"
|
||||
*cfg.ServiceSettings.PostEditTimeLimit = 300
|
||||
})
|
||||
|
||||
th.App.DoAdvancedPermissionsMigration()
|
||||
|
||||
config := th.App.Config()
|
||||
assert.Equal(t, -1, *config.ServiceSettings.PostEditTimeLimit)
|
||||
|
||||
th.ResetRoleMigration()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_AllowEditPost = "time_limit"
|
||||
*cfg.ServiceSettings.PostEditTimeLimit = 300
|
||||
})
|
||||
|
||||
th.App.DoAdvancedPermissionsMigration()
|
||||
config = th.App.Config()
|
||||
assert.Equal(t, 300, *config.ServiceSettings.PostEditTimeLimit)
|
||||
}
|
||||
|
||||
func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
th := SetupWithoutPreloadMigrations(t)
|
||||
defer th.TearDown()
|
||||
|
||||
// Add a license and change the policy config.
|
||||
restrictCustomEmojiCreation := *th.App.Config().ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation
|
||||
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = restrictCustomEmojiCreation
|
||||
})
|
||||
}()
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationSystemAdmin
|
||||
})
|
||||
|
||||
th.ResetEmojisMigration()
|
||||
th.App.DoEmojisPermissionsMigration()
|
||||
|
||||
expectedSystemAdmin := allPermissionIDs
|
||||
sort.Strings(expectedSystemAdmin)
|
||||
|
||||
role1, err1 := th.App.GetRoleByName(context.Background(), model.SystemAdminRoleId)
|
||||
assert.Nil(t, err1)
|
||||
sort.Strings(role1.Permissions)
|
||||
assert.Equal(t, expectedSystemAdmin, role1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemAdminRoleId))
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationAdmin
|
||||
})
|
||||
|
||||
th.ResetEmojisMigration()
|
||||
th.App.DoEmojisPermissionsMigration()
|
||||
|
||||
role2, err2 := th.App.GetRoleByName(context.Background(), model.TeamAdminRoleId)
|
||||
assert.Nil(t, err2)
|
||||
expected2 := []string{
|
||||
model.PermissionRemoveUserFromTeam.Id,
|
||||
model.PermissionManageTeam.Id,
|
||||
model.PermissionImportTeam.Id,
|
||||
model.PermissionManageTeamRoles.Id,
|
||||
model.PermissionReadPublicChannelGroups.Id,
|
||||
model.PermissionReadPrivateChannelGroups.Id,
|
||||
model.PermissionManageChannelRoles.Id,
|
||||
model.PermissionManageOthersIncomingWebhooks.Id,
|
||||
model.PermissionManageOthersOutgoingWebhooks.Id,
|
||||
model.PermissionManageSlashCommands.Id,
|
||||
model.PermissionManageOthersSlashCommands.Id,
|
||||
model.PermissionManageIncomingWebhooks.Id,
|
||||
model.PermissionManageOutgoingWebhooks.Id,
|
||||
model.PermissionDeletePost.Id,
|
||||
model.PermissionDeleteOthersPosts.Id,
|
||||
model.PermissionCreateEmojis.Id,
|
||||
model.PermissionDeleteEmojis.Id,
|
||||
model.PermissionAddReaction.Id,
|
||||
model.PermissionCreatePost.Id,
|
||||
model.PermissionManagePublicChannelMembers.Id,
|
||||
model.PermissionManagePrivateChannelMembers.Id,
|
||||
model.PermissionRemoveReaction.Id,
|
||||
model.PermissionUseChannelMentions.Id,
|
||||
model.PermissionUseGroupMentions.Id,
|
||||
model.PermissionConvertPublicChannelToPrivate.Id,
|
||||
model.PermissionConvertPrivateChannelToPublic.Id,
|
||||
}
|
||||
sort.Strings(expected2)
|
||||
sort.Strings(role2.Permissions)
|
||||
assert.Equal(t, expected2, role2.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.TeamAdminRoleId))
|
||||
|
||||
systemAdmin1, systemAdminErr1 := th.App.GetRoleByName(context.Background(), model.SystemAdminRoleId)
|
||||
assert.Nil(t, systemAdminErr1)
|
||||
sort.Strings(systemAdmin1.Permissions)
|
||||
assert.Equal(t, expectedSystemAdmin, systemAdmin1.Permissions, fmt.Sprintf("'%v' did not have expected permissions", model.SystemAdminRoleId))
|
||||
|
||||
th.App.UpdateConfig(func(cfg *model.Config) {
|
||||
*cfg.ServiceSettings.DEPRECATED_DO_NOT_USE_RestrictCustomEmojiCreation = model.RestrictEmojiCreationAll
|
||||
})
|
||||
|
||||
th.ResetEmojisMigration()
|
||||
th.App.DoEmojisPermissionsMigration()
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user