mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 19:54:22 +08:00
63 lines
1.3 KiB
Ruby
63 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class AboutSerializer < ApplicationSerializer
|
|
|
|
class UserAboutSerializer < BasicUserSerializer
|
|
attributes :title, :last_seen_at
|
|
end
|
|
|
|
class AboutCategoryModsSerializer < ApplicationSerializer
|
|
attributes :category_id
|
|
|
|
has_many :moderators, serializer: UserAboutSerializer, embed: :objects
|
|
end
|
|
|
|
has_many :moderators, serializer: UserAboutSerializer, embed: :objects
|
|
has_many :admins, serializer: UserAboutSerializer, embed: :objects
|
|
has_many :category_moderators, serializer: AboutCategoryModsSerializer, embed: :objects
|
|
|
|
attributes :stats,
|
|
:description,
|
|
:title,
|
|
:locale,
|
|
:version,
|
|
:https,
|
|
:can_see_about_stats,
|
|
:contact_url,
|
|
:contact_email
|
|
|
|
def include_stats?
|
|
can_see_about_stats
|
|
end
|
|
|
|
def stats
|
|
object.class.fetch_cached_stats || Jobs::AboutStats.new.execute({})
|
|
end
|
|
|
|
def include_contact_url?
|
|
can_see_site_contact_details
|
|
end
|
|
|
|
def contact_url
|
|
SiteSetting.contact_url
|
|
end
|
|
|
|
def include_contact_email?
|
|
can_see_site_contact_details
|
|
end
|
|
|
|
def contact_email
|
|
SiteSetting.contact_email
|
|
end
|
|
|
|
private
|
|
|
|
def can_see_about_stats
|
|
scope.can_see_about_stats?
|
|
end
|
|
|
|
def can_see_site_contact_details
|
|
scope.can_see_site_contact_details?
|
|
end
|
|
end
|