<% end %>
<% if current_user %>
- <div class="alert alert-warning">
- <%= t ".already_logged_in_html", :user => tag.strong(current_user.display_name) %>
+ <div class="alert alert-warning pb-0">
+ <p>
+ <%= t ".already_logged_in_html", :user => tag.strong(current_user.display_name) %>
+ </p>
+ <% if @safe_referer %>
+ <p>
+ <%= t ".access_another_page" %>
+ </p>
+ <p class="text-center">
+ <%= link_to t(".visit_referring_page"), @safe_referer, :class => "btn btn-warning" %>
+ </p>
+ <% end %>
</div>
<% end %>
tab_title: "Log In"
login_to_authorize_html: "Log in to OpenStreetMap to access %{client_app_name}."
already_logged_in_html: "You are already logged in as %{user}. Logging in again will change your current account."
+ access_another_page: "You arrived here while trying to access another page. If you want to access that page using your current account, click the button below:"
+ visit_referring_page: "Visit referring page"
email or username: "Email Address or Username"
password: "Password"
remember: "Remember me"
assert_button "First User"
within_content_body do
assert_text "logged in as First User"
+ assert_no_link "Visit referring page"
end
fill_in "username", :with => user2.email
assert_button "Second User"
end
+ test "Warn on login page when already logged in with referer link" do
+ user1 = create(:user, :display_name => "First User")
+ sign_in_as(user1)
+
+ visit login_path(:referer => about_path)
+
+ assert_button "First User"
+ within_content_body do
+ assert_text "logged in as First User"
+ assert_link "Visit referring page"
+
+ click_on "Visit referring page"
+ end
+
+ assert_current_path about_path
+ end
+
+ test "Only show safe referer links inside warnings" do
+ user1 = create(:user, :display_name => "First User")
+ sign_in_as(user1)
+
+ visit login_path(:referer => "https://example.com/")
+
+ assert_button "First User"
+ within_content_body do
+ assert_text "logged in as First User"
+ assert_no_link "Visit referring page"
+ end
+ end
+
test "Show OpenID form when OpenID provider button is clicked" do
visit login_path