2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-05 08:59:27 +08:00

user avatar urls/templates refactor

This commit is contained in:
Régis Hanol 2015-05-29 18:51:17 +02:00
parent 5a143c0c6e
commit acafa491b2
5 changed files with 34 additions and 8 deletions

View file

@ -42,7 +42,7 @@ class UserAvatarsController < ApplicationController
# we need multisite support to keep a single origin pull for CDNs
RailsMultisite::ConnectionManagement.with_hostname(params[:hostname]) do
show_in_site(RailsMultisite::ConnectionManagement.current_hostname)
show_in_site(params[:hostname])
end
end
@ -60,14 +60,16 @@ class UserAvatarsController < ApplicationController
if !Discourse.avatar_sizes.include?(size) && Discourse.store.external?
closest = Discourse.avatar_sizes.to_a.min { |a,b| (size-a).abs <=> (size-b).abs }
return redirect_to cdn_path("/user_avatar/#{params[:hostname]}/#{user.username_lower}/#{closest}/#{version}.png")
avatar_url = UserAvatar.local_avatar_url(hostname, user.username_lower, version, closest)
return redirect_to cdn_path(avatar_url)
end
upload = Upload.find_by(id: version) if user_avatar.contains_upload?(version)
upload ||= user.uploaded_avatar if user.uploaded_avatar_id == version
if user.uploaded_avatar && !upload
return redirect_to cdn_path("/user_avatar/#{hostname}/#{user.username_lower}/#{size}/#{user.uploaded_avatar_id}.png")
avatar_url = UserAvatar.local_avatar_url(hostname, user.username_lower, user.uploaded_avatar_id, size)
return redirect_to cdn_path(avatar_url)
elsif upload
original = Discourse.store.path_for(upload)
if Discourse.store.external? || File.exists?(original)