Files
manyfold/app/components/access_indicator.rb

39 lines
1.2 KiB
Ruby

class Components::AccessIndicator < Components::Base
# @param object The object to show the access details for; must include the CaberSubject concern
# @param icon Whether or not to show an indicator icon
# @param text Whether or not to show a indicator text
def initialize(object:, icon: true, text: false)
@object = object
@icon = icon
@text = text
end
def render?
SiteSettings.multiuser_enabled? && !@object.remote? && (current_user&.is_moderator? || current_user&.owns?(@object))
end
def view_template
span do
if @object.private?
span(class: "text-danger") { Icon(icon: "lock-fill", label: t("general.private")) } if @icon
if @text
whitespace
span { t("general.private") }
end
elsif @object.public?
span(class: "text-success") { Icon(icon: "eye-fill", label: t("general.public")) } if @icon
if @text
whitespace
span { t("general.public") }
end
else
span(class: "text-info") { Icon(icon: "unlock", label: t("general.shared")) } if @icon
if @text
whitespace
span { t("general.shared") }
end
end
end
end
end