mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-11-15 21:56:12 +08:00
48 lines
921 B
Ruby
48 lines
921 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ShareableSerializer
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
attributes :shared, :shared_label, :ishared, :shared_read, :shared_write, :shareable_write
|
|
end
|
|
|
|
def shared
|
|
shared_object.shared_with?(current_user.current_team)
|
|
end
|
|
|
|
def shared_label
|
|
case shared_object[:shared]
|
|
when 1
|
|
I18n.t('libraries.index.shared')
|
|
when 2
|
|
I18n.t('libraries.index.shared_for_editing')
|
|
when 3
|
|
I18n.t('libraries.index.shared_for_viewing')
|
|
when 4
|
|
I18n.t('libraries.index.not_shared')
|
|
end
|
|
end
|
|
|
|
def ishared
|
|
shared_object.i_shared?(current_user.current_team)
|
|
end
|
|
|
|
def shared_read
|
|
shared_object.shared_read?
|
|
end
|
|
|
|
def shared_write
|
|
shared_object.shared_write?
|
|
end
|
|
|
|
def shareable_write
|
|
shared_object.shareable_write?
|
|
end
|
|
|
|
private
|
|
|
|
def shared_object
|
|
instance_options[:shared_object] || object
|
|
end
|
|
end
|