From f8ed606a5ff4e1c4bc71514b5604de0cbaa09feb Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 2 May 2016 12:57:32 -0400 Subject: Fixing edit direct channel header (#2842) --- api/channel.go | 17 +++++------------ api/channel_test.go | 14 ++++++++++++++ api/command_msg.go | 2 +- 3 files changed, 20 insertions(+), 13 deletions(-) (limited to 'api') diff --git a/api/channel.go b/api/channel.go index 5f0d03246..b034e94ba 100644 --- a/api/channel.go +++ b/api/channel.go @@ -113,7 +113,7 @@ func createDirectChannel(c *Context, w http.ResponseWriter, r *http.Request) { return } - if sc, err := CreateDirectChannel(c, userId); err != nil { + if sc, err := CreateDirectChannel(c.Session.UserId, userId); err != nil { c.Err = err return } else { @@ -121,19 +121,14 @@ func createDirectChannel(c *Context, w http.ResponseWriter, r *http.Request) { } } -func CreateDirectChannel(c *Context, otherUserId string) (*model.Channel, *model.AppError) { - if len(otherUserId) != 26 { - return nil, model.NewLocAppError("CreateDirectChannel", "api.channel.create_direct_channel.invalid_user.app_error", nil, otherUserId) - } - +func CreateDirectChannel(userId string, otherUserId string) (*model.Channel, *model.AppError) { uc := Srv.Store.User().Get(otherUserId) channel := new(model.Channel) channel.DisplayName = "" - channel.Name = model.GetDMNameFromIds(otherUserId, c.Session.UserId) + channel.Name = model.GetDMNameFromIds(otherUserId, userId) - channel.TeamId = c.TeamId channel.Header = "" channel.Type = model.CHANNEL_DIRECT @@ -142,13 +137,11 @@ func CreateDirectChannel(c *Context, otherUserId string) (*model.Channel, *model } cm1 := &model.ChannelMember{ - UserId: c.Session.UserId, - Roles: model.CHANNEL_ROLE_ADMIN, + UserId: userId, NotifyProps: model.GetDefaultChannelNotifyProps(), } cm2 := &model.ChannelMember{ UserId: otherUserId, - Roles: "", NotifyProps: model.GetDefaultChannelNotifyProps(), } @@ -274,7 +267,7 @@ func updateChannelHeader(c *Context, w http.ResponseWriter, r *http.Request) { channel := cresult.Data.(*model.Channel) // Don't need to do anything channel member, just wanted to confirm it exists - if !c.HasPermissionsToTeam(channel.TeamId, "updateChannelHeader") { + if channel.TeamId != "" && !c.HasPermissionsToTeam(channel.TeamId, "updateChannelHeader") { return } oldChannelHeader := channel.Header diff --git a/api/channel_test.go b/api/channel_test.go index a70e5532a..4c8462e6a 100644 --- a/api/channel_test.go +++ b/api/channel_test.go @@ -215,6 +215,20 @@ func TestUpdateChannelHeader(t *testing.T) { t.Fatal("should have errored on bad channel header") } + rchannel := Client.Must(Client.CreateDirectChannel(th.BasicUser2.Id)).Data.(*model.Channel) + data["channel_id"] = rchannel.Id + data["channel_header"] = "new header" + var upChanneld *model.Channel + if result, err := Client.UpdateChannelHeader(data); err != nil { + t.Fatal(err) + } else { + upChanneld = result.Data.(*model.Channel) + } + + if upChanneld.Header != data["channel_header"] { + t.Fatal("Failed to update header") + } + th.LoginBasic2() data["channel_id"] = channel1.Id diff --git a/api/command_msg.go b/api/command_msg.go index 517999695..6c517b68e 100644 --- a/api/command_msg.go +++ b/api/command_msg.go @@ -64,7 +64,7 @@ func (me *msgProvider) DoCommand(c *Context, channelId string, message string) * if channel := <-Srv.Store.Channel().GetByName(c.TeamId, channelName); channel.Err != nil { if channel.Err.Id == "store.sql_channel.get_by_name.missing.app_error" { - if directChannel, err := CreateDirectChannel(c, userProfile.Id); err != nil { + if directChannel, err := CreateDirectChannel(c.Session.UserId, userProfile.Id); err != nil { c.Err = err return &model.CommandResponse{Text: c.T("api.command_msg.dm_fail.app_error"), ResponseType: model.COMMAND_RESPONSE_TYPE_EPHEMERAL} } else { -- cgit v1.2.3-1-g7c22