Fix cross-team search from: filter not working (#31277)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Julien Tant
2025-06-05 11:53:35 -07:00
коммит произвёл GitHub
родитель 924ed4ae02
Коммит 7e013f4c1a
2 изменённых файлов: 71 добавлений и 5 удалений

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

@@ -2079,11 +2079,18 @@ func (s *SqlPostStore) buildSearchPostFilterClause(teamID string, fromUsers []st
}
// Sub-query builder.
sb := s.getSubQueryBuilder().Select("Id").From("Users, TeamMembers").Where(
sq.And{
sq.Eq{"TeamMembers.TeamId": teamID},
sq.Expr("Users.Id = TeamMembers.UserId"),
})
sb := s.getSubQueryBuilder().Select("Id")
if teamID == "" {
// Cross-team search: don't filter by team membership
sb = sb.From("Users")
} else {
// Team-scoped search: filter by team membership
sb = sb.From("Users, TeamMembers").Where(
sq.And{
sq.Eq{"TeamMembers.TeamId": teamID},
sq.Expr("Users.Id = TeamMembers.UserId"),
})
}
sb = s.buildSearchUserFilterClause(fromUsers, false, userByUsername, sb)
sb = s.buildSearchUserFilterClause(excludedUsers, true, userByUsername, sb)
subQuery, subQueryArgs, err := sb.ToSql()