summaryrefslogtreecommitdiff
path: root/app/models/concerns/avatarable.rb
blob: f8c0327e1905f8943610bd0c2a1e8f57b3b4d642 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
module Avatarable
  extend ActiveSupport::Concern

  def avatar_path(only_path: true, use_asset_path: true)
    return unless self[:avatar].present?

    # If only_path is true then use the relative path of avatar.
    # Otherwise use full path (including host).
    asset_host = ActionController::Base.asset_host
    gitlab_host = only_path ? gitlab_config.relative_url_root : gitlab_config.url

    if use_asset_path
      # If asset_host is set then it is expected that assets are handled by a standalone host.
      # That means we do not want to get GitLab's relative_url_root option anymore.
      host = asset_host.present? ? asset_host : gitlab_host

      [host, avatar.url].join
    else
      avatar.url
    end
  end
end