Retrospring/app/helpers/user_helper.rb

37 lines
1.1 KiB
Ruby
Raw Normal View History

2022-06-24 07:59:09 -07:00
# frozen_string_literal: true
2014-11-02 08:57:37 -08:00
module UserHelper
2014-11-10 22:09:36 -08:00
# Decides what user name to show.
# @param context_user [User] the user whose the profile preferences should be applied
2014-11-10 22:09:36 -08:00
# @return [String] The user name
def user_screen_name(user, context_user: nil, anonymous: false, url: true, link_only: false)
2022-06-24 07:59:09 -07:00
return profile_link(user) if should_unmask?(user, anonymous)
return anonymous_name(context_user) if anonymous?(user, anonymous)
if url
2022-06-24 07:59:09 -07:00
return show_user_profile_path(user.screen_name) if link_only
2022-06-24 07:59:09 -07:00
return profile_link(user)
end
2022-06-24 07:59:09 -07:00
user.profile.safe_name.strip
2014-11-10 22:09:36 -08:00
end
2022-06-21 07:27:07 -07:00
private
2022-06-24 07:59:09 -07:00
def profile_link(user)
link_to(user.profile.safe_name, show_user_profile_path(user.screen_name), class: ("user--banned" if user.banned?).to_s)
end
def should_unmask?(user, anonymous)
user.present? && moderation_view? && anonymous
end
2022-06-21 07:27:07 -07:00
def anonymous_name(context_user)
2022-06-25 01:37:56 -07:00
sanitize(context_user&.profile&.anon_display_name.presence || APP_CONFIG["anonymous_name"], tags: [])
2022-06-21 07:27:07 -07:00
end
2022-06-24 07:59:09 -07:00
def anonymous?(user, anonymous)
user.nil? || anonymous
end
2014-11-02 08:57:37 -08:00
end