update permission of converting a channel from public to private to allow team admin (#8723)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
37b3805ca6
Коммит
30fd4a2951
@@ -153,15 +153,13 @@ func convertChannelToPrivate(c *Context, w http.ResponseWriter, r *http.Request)
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if !c.App.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) {
|
|
||||||
c.SetPermissionError(model.PERMISSION_MANAGE_SYSTEM)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
oldPublicChannel, err := c.App.GetChannel(c.Params.ChannelId)
|
oldPublicChannel, err := c.App.GetChannel(c.Params.ChannelId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = err
|
c.Err = err
|
||||||
return
|
return
|
||||||
|
} else if !c.App.SessionHasPermissionToTeam(c.Session, oldPublicChannel.TeamId, model.PERMISSION_MANAGE_TEAM) {
|
||||||
|
c.SetPermissionError(model.PERMISSION_MANAGE_TEAM)
|
||||||
|
return
|
||||||
} else if oldPublicChannel.Type == model.CHANNEL_PRIVATE {
|
} else if oldPublicChannel.Type == model.CHANNEL_PRIVATE {
|
||||||
c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.private_channel_error", nil, "", http.StatusBadRequest)
|
c.Err = model.NewAppError("convertChannelToPrivate", "api.channel.convert_channel_to_private.private_channel_error", nil, "", http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -915,10 +915,13 @@ func TestConvertChannelToPrivate(t *testing.T) {
|
|||||||
CheckForbiddenStatus(t, resp)
|
CheckForbiddenStatus(t, resp)
|
||||||
|
|
||||||
th.LoginTeamAdmin()
|
th.LoginTeamAdmin()
|
||||||
_, resp = Client.ConvertChannelToPrivate(publicChannel.Id)
|
rchannel, resp := Client.ConvertChannelToPrivate(publicChannel.Id)
|
||||||
CheckForbiddenStatus(t, resp)
|
CheckOKStatus(t, resp)
|
||||||
|
if rchannel.Type != model.CHANNEL_PRIVATE {
|
||||||
|
t.Fatal("channel should be converted from public to private")
|
||||||
|
}
|
||||||
|
|
||||||
rchannel, resp := th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id)
|
rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(privateChannel.Id)
|
||||||
CheckBadRequestStatus(t, resp)
|
CheckBadRequestStatus(t, resp)
|
||||||
if rchannel != nil {
|
if rchannel != nil {
|
||||||
t.Fatal("should not return a channel")
|
t.Fatal("should not return a channel")
|
||||||
@@ -930,7 +933,8 @@ func TestConvertChannelToPrivate(t *testing.T) {
|
|||||||
t.Fatal("should not return a channel")
|
t.Fatal("should not return a channel")
|
||||||
}
|
}
|
||||||
|
|
||||||
rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel.Id)
|
publicChannel2 := th.CreatePublicChannel()
|
||||||
|
rchannel, resp = th.SystemAdminClient.ConvertChannelToPrivate(publicChannel2.Id)
|
||||||
CheckOKStatus(t, resp)
|
CheckOKStatus(t, resp)
|
||||||
if rchannel.Type != model.CHANNEL_PRIVATE {
|
if rchannel.Type != model.CHANNEL_PRIVATE {
|
||||||
t.Fatal("channel should be converted from public to private")
|
t.Fatal("channel should be converted from public to private")
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user