[MM-27274] Add permission to convert public channel to private (#15370)
* Add permission to convert public channel to private * Rename to PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE * Fix tests * Update definitions for roles that have manage_team * Fix tests * Add convert private channel to public permission * Add to channel scoped perms * Update permission checks on channel privacy endpoint * Trigger CI
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
679a4447b4
Коммит
2baf95df1e
@@ -152,6 +152,8 @@ 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_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id,
|
||||
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id,
|
||||
model.PERMISSION_DELETE_POST.Id,
|
||||
model.PERMISSION_DELETE_OTHERS_POSTS.Id,
|
||||
},
|
||||
@@ -277,6 +279,8 @@ 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_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id,
|
||||
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id,
|
||||
model.PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES.Id,
|
||||
model.PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES.Id,
|
||||
model.PERMISSION_DELETE_POST.Id,
|
||||
@@ -429,6 +433,8 @@ func TestDoEmojisPermissionsMigration(t *testing.T) {
|
||||
model.PERMISSION_REMOVE_REACTION.Id,
|
||||
model.PERMISSION_USE_CHANNEL_MENTIONS.Id,
|
||||
model.PERMISSION_USE_GROUP_MENTIONS.Id,
|
||||
model.PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE.Id,
|
||||
model.PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC.Id,
|
||||
}
|
||||
sort.Strings(expected2)
|
||||
sort.Strings(role2.Permissions)
|
||||
|
||||
@@ -21,6 +21,7 @@ type permissionsMap []permissionTransformation
|
||||
|
||||
const (
|
||||
PERMISSION_MANAGE_SYSTEM = "manage_system"
|
||||
PERMISSION_MANAGE_TEAM = "manage_team"
|
||||
PERMISSION_MANAGE_EMOJIS = "manage_emojis"
|
||||
PERMISSION_MANAGE_OTHERS_EMOJIS = "manage_others_emojis"
|
||||
PERMISSION_CREATE_EMOJIS = "create_emojis"
|
||||
@@ -46,6 +47,8 @@ const (
|
||||
PERMISSION_DELETE_PRIVATE_CHANNEL = "delete_private_channel"
|
||||
PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES = "manage_public_channel_properties"
|
||||
PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES = "manage_private_channel_properties"
|
||||
PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE = "convert_public_channel_to_private"
|
||||
PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC = "convert_private_channel_to_public"
|
||||
PERMISSION_VIEW_MEMBERS = "view_members"
|
||||
PERMISSION_INVITE_USER = "invite_user"
|
||||
PERMISSION_INVITE_GUEST = "invite_guest"
|
||||
@@ -489,6 +492,15 @@ func (a *App) getAddSystemConsolePermissionsMigration() (permissionsMap, error)
|
||||
return transformations, nil
|
||||
}
|
||||
|
||||
func (a *App) getAddConvertChannelPermissionsMigration() (permissionsMap, error) {
|
||||
return permissionsMap{
|
||||
permissionTransformation{
|
||||
On: permissionExists(PERMISSION_MANAGE_TEAM),
|
||||
Add: []string{PERMISSION_CONVERT_PUBLIC_CHANNEL_TO_PRIVATE, PERMISSION_CONVERT_PRIVATE_CHANNEL_TO_PUBLIC},
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// DoPermissionsMigrations execute all the permissions migrations need by the current version.
|
||||
func (a *App) DoPermissionsMigrations() error {
|
||||
PermissionsMigrations := []struct {
|
||||
@@ -507,6 +519,7 @@ func (a *App) DoPermissionsMigrations() error {
|
||||
{Key: model.MIGRATION_KEY_CHANNEL_MODERATIONS_PERMISSIONS, Migration: a.channelModerationPermissionsMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_USE_GROUP_MENTIONS_PERMISSION, Migration: a.getAddUseGroupMentionsPermissionMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_SYSTEM_CONSOLE_PERMISSIONS, Migration: a.getAddSystemConsolePermissionsMigration},
|
||||
{Key: model.MIGRATION_KEY_ADD_CONVERT_CHANNEL_PERMISSIONS, Migration: a.getAddConvertChannelPermissionsMigration},
|
||||
}
|
||||
|
||||
for _, migration := range PermissionsMigrations {
|
||||
|
||||
Ссылка в новой задаче
Block a user