MM-30314 Don't delete all SidebarChannels when removed from team (#16692)

* MM-30314 Don't delete all SidebarChannels when removed from team

* Revert some changes to minimize diff
Этот коммит содержится в:
Harrison Healey
2021-01-18 12:42:55 -05:00
коммит произвёл GitHub
родитель 0391fe7de9
Коммит 90952a1bd5
2 изменённых файлов: 201 добавлений и 9 удалений

Просмотреть файл

@@ -962,7 +962,20 @@ func (s SqlChannelStore) ClearSidebarOnTeamLeave(userId, teamId string) error {
if s.DriverName() == model.DATABASE_DRIVER_MYSQL {
deleteQuery = "DELETE SidebarChannels FROM SidebarChannels LEFT JOIN SidebarCategories ON SidebarCategories.Id = SidebarChannels.CategoryId WHERE SidebarCategories.TeamId=:TeamId AND SidebarCategories.UserId=:UserId"
} else {
deleteQuery = "DELETE FROM SidebarChannels USING SidebarChannels AS chan LEFT OUTER JOIN SidebarCategories AS cat ON cat.Id = chan.CategoryId WHERE cat.UserId = :UserId AND cat.TeamId = :TeamId"
deleteQuery = `
DELETE FROM
SidebarChannels
WHERE
CategoryId IN (
SELECT
CategoryId
FROM
SidebarChannels,
SidebarCategories
WHERE
SidebarChannels.CategoryId = SidebarCategories.Id
AND SidebarCategories.TeamId = :TeamId
AND SidebarChannels.UserId = :UserId)`
}
if _, err := s.GetMaster().Exec(deleteQuery, params); err != nil {
return errors.Wrap(err, "failed to delete from SidebarChannels")