FEATURE: allow moderators to see flagged private messages

This commit is contained in:
Régis Hanol
2015-02-16 13:03:04 +01:00
parent 0b45054e2b
commit 3cad4824d7
3 changed files with 42 additions and 20 deletions

View File

@ -231,10 +231,19 @@ class Topic < ActiveRecord::Base
posts.order('score desc').limit(1).first
end
def has_flags?
FlagQuery.flagged_post_actions("active")
.where("topics.id" => id)
.exists?
end
# all users (in groups or directly targetted) that are going to get the pm
def all_allowed_users
# TODO we should probably change this from 3 queries to 1
User.where('id in (?)', allowed_users.select('users.id').to_a + allowed_group_users.select('users.id').to_a)
# TODO we should probably change this to 1 query
allowed_user_ids = allowed_users.select('users.id').to_a
allowed_group_user_ids = allowed_group_users.select('users.id').to_a
allowed_staff_ids = private_message? && has_flags? ? User.where(moderator: true).pluck(:id).to_a : []
User.where('id IN (?)', allowed_user_ids + allowed_group_user_ids + allowed_staff_ids)
end
# Additional rate limits on topics: per day and private messages per day