From: Anton Khorev Date: Sat, 26 Apr 2025 16:41:23 +0000 (+0300) Subject: Warn on login page if already logged in X-Git-Tag: live~9^2~2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/7b5ea31310791886a430243b3361757f6e4af46b?ds=inline Warn on login page if already logged in --- diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb index c2d96b63c..6427a01e8 100644 --- a/app/views/sessions/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -27,6 +27,12 @@ <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %> <% end %> +<% if current_user %> +
+ <%= t ".already_logged_in_html", :user => tag.strong(current_user.display_name) %> +
+<% end %> + <%= bootstrap_form_tag(:action => "login", :html => { :id => "login_form" }) do |f| %> <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 7774a203a..444d75a97 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1975,6 +1975,7 @@ en: new: 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." email or username: "Email Address or Username" password: "Password" remember: "Remember me" diff --git a/test/system/user_login_test.rb b/test/system/user_login_test.rb index fdcb7631d..643ebf8d8 100644 --- a/test/system/user_login_test.rb +++ b/test/system/user_login_test.rb @@ -1,6 +1,25 @@ require "application_system_test_case" class UserLoginTest < ApplicationSystemTestCase + test "Warn on login page when already logged in" do + user1 = create(:user, :display_name => "First User") + user2 = create(:user, :display_name => "Second User") + sign_in_as(user1) + + visit login_path + + assert_button "First User" + within_content_body do + assert_text "logged in as First User" + end + + fill_in "username", :with => user2.email + fill_in "password", :with => "test" + click_on "Log in" + + assert_button "Second User" + end + test "Show OpenID form when OpenID provider button is clicked" do visit login_path