mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
DEV: Make more group-based settings client: false (#25585)
Affects the following settings: * whispers_allowed_groups * anonymous_posting_allowed_groups * personal_message_enabled_groups * shared_drafts_allowed_groups * here_mention_allowed_groups * uploaded_avatars_allowed_groups * ignore_allowed_groups This turns off `client: true` for these group-based settings, because there is no guarantee that the current user gets all their group memberships serialized to the client. Better to check server-side first.
This commit is contained in:
@ -18,8 +18,6 @@ class UserStat < ActiveRecord::Base
|
||||
UPDATE_UNREAD_USERS_LIMIT = 10_000
|
||||
|
||||
def self.update_first_unread_pm(last_seen, limit: UPDATE_UNREAD_USERS_LIMIT)
|
||||
whisperers_group_ids = SiteSetting.whispers_allowed_group_ids
|
||||
|
||||
DB.exec(
|
||||
<<~SQL,
|
||||
UPDATE user_stats us
|
||||
@ -37,11 +35,11 @@ class UserStat < ActiveRecord::Base
|
||||
INNER JOIN topics t ON t.id = tau.topic_id
|
||||
INNER JOIN users u ON u.id = tau.user_id
|
||||
LEFT JOIN topic_users tu ON t.id = tu.topic_id AND tu.user_id = tau.user_id
|
||||
#{whisperers_group_ids.present? ? "LEFT JOIN group_users gu ON gu.group_id IN (:whisperers_group_ids) AND gu.user_id = u.id" : ""}
|
||||
#{SiteSetting.whispers_allowed_groups_map.any? ? "LEFT JOIN group_users gu ON gu.group_id IN (:whisperers_group_ids) AND gu.user_id = u.id" : ""}
|
||||
WHERE t.deleted_at IS NULL
|
||||
AND t.archetype = :archetype
|
||||
AND tu.last_read_post_number < CASE
|
||||
WHEN u.admin OR u.moderator #{whisperers_group_ids.present? ? "OR gu.id IS NOT NULL" : ""}
|
||||
WHEN u.admin OR u.moderator #{SiteSetting.whispers_allowed_groups_map.any? ? "OR gu.id IS NOT NULL" : ""}
|
||||
THEN t.highest_staff_post_number
|
||||
ELSE t.highest_post_number
|
||||
END
|
||||
@ -71,7 +69,7 @@ class UserStat < ActiveRecord::Base
|
||||
now: UPDATE_UNREAD_MINUTES_AGO.minutes.ago,
|
||||
last_seen: last_seen,
|
||||
limit: limit,
|
||||
whisperers_group_ids: whisperers_group_ids,
|
||||
whisperers_group_ids: SiteSetting.whispers_allowed_groups_map,
|
||||
)
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user