6d85c76c8f
• Added: - ability to set password for groups - GroupPasswordModal - checks for if has password - rate limiting in rack_attack
54 lines
1.1 KiB
Ruby
54 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class REST::GroupSerializer < ActiveModel::Serializer
|
|
include RoutingHelper
|
|
|
|
attributes :id, :title, :description, :description_html, :cover_image_url, :is_archived,
|
|
:member_count, :created_at, :is_private, :is_visible, :slug, :tags, :group_category, :password,
|
|
:has_password
|
|
|
|
def id
|
|
object.id.to_s
|
|
end
|
|
|
|
def has_password
|
|
return !!password
|
|
end
|
|
|
|
def password
|
|
if object.group_accounts.where(account_id: current_user.account.id, role: :admin).exists?
|
|
object.password
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
|
|
def group_category
|
|
if object.group_categories
|
|
object.group_categories
|
|
end
|
|
end
|
|
|
|
def description
|
|
object.description
|
|
end
|
|
|
|
def description_html
|
|
Formatter.instance.formatGroupDescription(object.description).strip
|
|
end
|
|
|
|
def clean_migrated_url
|
|
object
|
|
.cover_image_file_name
|
|
.sub("gab://groups/", "https://gab.com/media/user/")
|
|
end
|
|
|
|
def cover_image_url
|
|
if object.cover_image_file_name and object.cover_image_file_name.start_with? "gab://groups/"
|
|
return clean_migrated_url
|
|
end
|
|
|
|
full_asset_url(object.cover_image.url)
|
|
end
|
|
end
|