From 5f8a93fca66215d5c6a16297cfb649ce15526044 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Wed, 19 Jul 2017 21:57:28 +0100 Subject: PLT-6971: Fix Slack Import of non-ascii channel names. (#6969) --- app/slackimport.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'app/slackimport.go') diff --git a/app/slackimport.go b/app/slackimport.go index 71f16c874..4470b8323 100644 --- a/app/slackimport.go +++ b/app/slackimport.go @@ -53,6 +53,8 @@ type SlackPost struct { Attachments []*model.SlackAttachment `json:"attachments"` } +var isValidChannelNameCharacters = regexp.MustCompile(`^[a-zA-Z0-9\-_]+$`).MatchString + type SlackComment struct { User string `json:"user"` Comment string `json:"comment"` @@ -77,13 +79,17 @@ func SlackConvertTimeStamp(ts string) int64 { return timeStamp * 1000 // Convert to milliseconds } -func SlackConvertChannelName(channelName string) string { +func SlackConvertChannelName(channelName string, channelId string) string { newName := strings.Trim(channelName, "_-") if len(newName) == 1 { return "slack-channel-" + newName } - return newName + if isValidChannelNameCharacters(newName) { + return newName + } else { + return strings.ToLower(channelId) + } } func SlackParseChannels(data io.Reader) ([]SlackChannel, error) { @@ -466,7 +472,7 @@ func SlackAddChannels(teamId string, slackchannels []SlackChannel, posts map[str TeamId: teamId, Type: model.CHANNEL_OPEN, DisplayName: sChannel.Name, - Name: SlackConvertChannelName(sChannel.Name), + Name: SlackConvertChannelName(sChannel.Name, sChannel.Id), Purpose: sChannel.Purpose["value"], Header: sChannel.Topic["value"], } -- cgit v1.2.3-1-g7c22