FIX: Do not show a 404 page when visiting messages (#18652)

* DEV: Use list controller and action

It used an empty action handler which just returned the app and it
required another request to get the topic list. By using the correct
controller and action we can preload the topic list.
This commit is contained in:
Bianca Nenciu 2022-10-20 16:24:56 +03:00 committed by GitHub
parent 8304f40f84
commit 0be0bcfc7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -478,7 +478,7 @@ Discourse::Application.routes.draw do
get "#{root_path}/:username/messages/:filter" => "user_actions#private_messages", constraints: { username: RouteFormat.username }
get "#{root_path}/:username/messages/group/:group_name" => "user_actions#private_messages", constraints: { username: RouteFormat.username, group_name: RouteFormat.username }
get "#{root_path}/:username/messages/group/:group_name/:filter" => "user_actions#private_messages", constraints: { username: RouteFormat.username, group_name: RouteFormat.username }
get "#{root_path}/:username/messages/tags/:tag_id" => "user_actions#private_messages", constraints: StaffConstraint.new
get "#{root_path}/:username/messages/tags/:tag_id" => "list#private_messages_tag", constraints: { username: RouteFormat.username }
get "#{root_path}/:username.json" => "users#show", constraints: { username: RouteFormat.username }, defaults: { format: :json }
get({ "#{root_path}/:username" => "users#show", constraints: { username: RouteFormat.username } }.merge(index == 1 ? { as: 'user' } : {}))
put "#{root_path}/:username" => "users#update", constraints: { username: RouteFormat.username }, defaults: { format: :json }

View File

@ -186,6 +186,16 @@ RSpec.describe ListController do
expect(response.parsed_body["topic_list"]["topics"].first["id"])
.to eq(private_message.id)
end
it 'should work for users who are allowed and direct links' do
SiteSetting.pm_tags_allowed_for_groups = group.name
group.add(user)
sign_in(user)
get "/u/#{user.username}/messages/tags/#{tag.name}"
expect(response.status).to eq(200)
end
end
describe '#private_messages_group' do