mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 03:51:07 +08:00
FEATURE: New and Unread messages for user personal messages. (#13603)
* FEATURE: New and Unread messages for user personal messages. Co-authored-by: awesomerobot <kris.aubuchon@discourse.org>
This commit is contained in:

committed by
GitHub

parent
fe3e18f981
commit
016efeadf6
@ -146,35 +146,27 @@ class ListController < ApplicationController
|
||||
end
|
||||
|
||||
def self.generate_message_route(action)
|
||||
case action
|
||||
when :private_messages_tag
|
||||
define_method("#{action}") do
|
||||
raise Discourse::NotFound if !guardian.can_tag_pms?
|
||||
message_route(action)
|
||||
end
|
||||
when :private_messages_group, :private_messages_group_archive
|
||||
define_method("#{action}") do
|
||||
group = Group.find_by("LOWER(name) = ?", params[:group_name].downcase)
|
||||
raise Discourse::NotFound if !group
|
||||
raise Discourse::NotFound unless guardian.can_see_group_messages?(group)
|
||||
|
||||
message_route(action)
|
||||
end
|
||||
else
|
||||
define_method("#{action}") do
|
||||
message_route(action)
|
||||
end
|
||||
define_method action do
|
||||
message_route(action)
|
||||
end
|
||||
end
|
||||
|
||||
def message_route(action)
|
||||
target_user = fetch_user_from_params({ include_inactive: current_user.try(:staff?) }, [:user_stat, :user_option])
|
||||
|
||||
case action
|
||||
when :private_messages_tag
|
||||
raise Discourse::NotFound if !guardian.can_tag_pms?
|
||||
when :private_messages_warnings
|
||||
guardian.ensure_can_see_warnings!(target_user)
|
||||
when :private_messages_group, :private_messages_group_archive
|
||||
group = Group.find_by("LOWER(name) = ?", params[:group_name].downcase)
|
||||
raise Discourse::NotFound if !group
|
||||
raise Discourse::NotFound unless guardian.can_see_group_messages?(group)
|
||||
else
|
||||
guardian.ensure_can_see_private_messages!(target_user.id)
|
||||
end
|
||||
|
||||
list_opts = build_topic_list_options
|
||||
list = generate_list_for(action.to_s, target_user, list_opts)
|
||||
url_prefix = "topics"
|
||||
@ -187,11 +179,19 @@ class ListController < ApplicationController
|
||||
private_messages
|
||||
private_messages_sent
|
||||
private_messages_unread
|
||||
private_messages_new
|
||||
private_messages_archive
|
||||
private_messages_group
|
||||
private_messages_group_new
|
||||
private_messages_group_unread
|
||||
private_messages_group_archive
|
||||
private_messages_tag
|
||||
private_messages_warnings
|
||||
private_messages_all
|
||||
private_messages_all_sent
|
||||
private_messages_all_unread
|
||||
private_messages_all_new
|
||||
private_messages_all_archive
|
||||
private_messages_tag
|
||||
}.each do |action|
|
||||
generate_message_route(action)
|
||||
end
|
||||
|
Reference in New Issue
Block a user