for normal requests to /login, save the referrer and redir back there

properly closes #164
This commit is contained in:
joshua stein 2014-08-08 10:31:06 -05:00
parent 243b29240a
commit bdbfedfb23
2 changed files with 17 additions and 2 deletions

View file

@ -11,6 +11,7 @@ class LoginController < ApplicationController
def index
@title = "Login"
@referer ||= request.referer
render :action => "index"
end
@ -28,12 +29,22 @@ class LoginController < ApplicationController
if (rd = session[:redirect_to]).present?
session.delete(:redirect_to)
return redirect_to rd
else
return redirect_to "/"
elsif params[:referer].present?
begin
ru = URI.parse(params[:referer])
if ru.host == Rails.application.domain
return redirect_to ru.to_s
end
rescue => e
Rails.logger.error "error parsing referer: #{e}"
end
end
return redirect_to "/"
end
flash.now[:error] = "Invalid e-mail address and/or password."
@referer = params[:referer]
index
end

View file

@ -29,5 +29,9 @@
ask them for an invitation or <a href="/invitations/request">request one
publicly</a>.
</p>
<% if @referer.present? %>
<%= hidden_field_tag :referer, @referer %>
<% end %>
<% end %>
</div>