mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Add a messages view for all official warnings of a user (#12659)
Moderators are allowed to see the warnings list, with an access warning. https://meta.discourse.org/t/why-arent-warnings-easily-accessible-like-suspensions-are/164043
This commit is contained in:
@@ -84,6 +84,10 @@ module UserGuardian
|
||||
can_merge_user?(source_user) && !target_user.nil?
|
||||
end
|
||||
|
||||
def can_see_warnings?(user)
|
||||
user && (is_me?(user) || is_staff?)
|
||||
end
|
||||
|
||||
def can_reset_bounce_score?(user)
|
||||
user && is_staff?
|
||||
end
|
||||
|
||||
@@ -365,6 +365,14 @@ class TopicQuery
|
||||
create_list(:private_messages, {}, list)
|
||||
end
|
||||
|
||||
def list_private_messages_warnings(user)
|
||||
list = private_messages_for(user, :user)
|
||||
list = list.where('topics.subtype = ?', TopicSubtype.moderator_warning)
|
||||
# Exclude official warnings that the user created, instead of received
|
||||
list = list.where('topics.user_id <> ?', user.id)
|
||||
create_list(:private_messages, {}, list)
|
||||
end
|
||||
|
||||
def list_category_topic_ids(category)
|
||||
query = default_results(category: category.id)
|
||||
pinned_ids = query.where('topics.pinned_at IS NOT NULL AND topics.category_id = ?', category.id).limit(nil).order('pinned_at DESC').pluck(:id)
|
||||
|
||||
Reference in New Issue
Block a user