mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
BUGFIX: fix redirect, correct multisite
This commit is contained in:
@ -23,13 +23,13 @@ class UserAvatarsController < ApplicationController
|
|||||||
def show
|
def show
|
||||||
# we need multisite support to keep a single origin pull for CDNs
|
# we need multisite support to keep a single origin pull for CDNs
|
||||||
RailsMultisite::ConnectionManagement.with_hostname(params[:hostname]) do
|
RailsMultisite::ConnectionManagement.with_hostname(params[:hostname]) do
|
||||||
show_in_site
|
show_in_site(RailsMultisite::ConnectionManagement.current_hostname)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def show_in_site
|
def show_in_site(hostname)
|
||||||
username = params[:username].to_s
|
username = params[:username].to_s
|
||||||
return render_dot unless user = User.find_by(username_lower: username.downcase)
|
return render_dot unless user = User.find_by(username_lower: username.downcase)
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ class UserAvatarsController < ApplicationController
|
|||||||
upload ||= user.uploaded_avatar if user.uploaded_avatar_id == version
|
upload ||= user.uploaded_avatar if user.uploaded_avatar_id == version
|
||||||
|
|
||||||
if user.uploaded_avatar && !upload
|
if user.uploaded_avatar && !upload
|
||||||
return redirect_to "/avatar/#{user.username_lower}/#{size}/#{user.uploaded_avatar_id}.png"
|
return redirect_to "/avatar/#{hostname}/#{user.username_lower}/#{size}/#{user.uploaded_avatar_id}.png"
|
||||||
elsif upload
|
elsif upload
|
||||||
original = Discourse.store.path_for(upload)
|
original = Discourse.store.path_for(upload)
|
||||||
if Discourse.store.external? || File.exists?(original)
|
if Discourse.store.external? || File.exists?(original)
|
||||||
|
@ -48,13 +48,13 @@ module RailsMultisite
|
|||||||
old = current_hostname
|
old = current_hostname
|
||||||
connected = ActiveRecord::Base.connection_pool.connected?
|
connected = ActiveRecord::Base.connection_pool.connected?
|
||||||
|
|
||||||
establish_connection(:hostname => hostname) unless connected && hostname == old
|
establish_connection(:host => hostname) unless connected && hostname == old
|
||||||
rval = yield hostname
|
rval = yield hostname
|
||||||
|
|
||||||
unless connected && hostname == old
|
unless connected && hostname == old
|
||||||
ActiveRecord::Base.connection_handler.clear_active_connections!
|
ActiveRecord::Base.connection_handler.clear_active_connections!
|
||||||
|
|
||||||
establish_connection(:hostname => old)
|
establish_connection(:host => old)
|
||||||
ActiveRecord::Base.connection_handler.clear_active_connections! unless connected
|
ActiveRecord::Base.connection_handler.clear_active_connections! unless connected
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user