mirror of
https://github.com/discourse/discourse.git
synced 2024-12-21 08:53:46 +08:00
b3a1199493
Users can hide their public profile and presence information by checking
“Hide my public profile and presence features” on the
`u/{username}/preferences/interface` page. In that case, we also don't
want to return user status from the server.
This work has been started in https://github.com/discourse/discourse/pull/23946.
The current PR fixes all the remaining places in Core.
Note that the actual fix is quite simple – a5802f484d
.
But we had a fair amount of duplication in the code responsible for
the user status serialization, so I had to dry that up first. The refactoring
as well as adding some additional tests is the main part of this PR.
22 lines
431 B
Ruby
22 lines
431 B
Ruby
# frozen_string_literal: true
|
|
|
|
class GroupUserSerializer < BasicUserSerializer
|
|
include UserPrimaryGroupMixin
|
|
include UserStatusMixin
|
|
|
|
attributes :name, :title, :last_posted_at, :last_seen_at, :added_at, :timezone
|
|
|
|
def initialize(object, options = {})
|
|
super
|
|
options[:include_status] = true
|
|
end
|
|
|
|
def timezone
|
|
user.user_option.timezone
|
|
end
|
|
|
|
def include_added_at?
|
|
object.respond_to? :added_at
|
|
end
|
|
end
|