]> git.openstreetmap.org Git - rails.git/commitdiff
Warn on login page if already logged in
authorAnton Khorev <tony29@yandex.ru>
Sat, 26 Apr 2025 16:41:23 +0000 (19:41 +0300)
committerAnton Khorev <tony29@yandex.ru>
Sun, 27 Apr 2025 02:55:03 +0000 (05:55 +0300)
app/views/sessions/new.html.erb
config/locales/en.yml
test/system/user_login_test.rb

index c2d96b63cc37ae2b9def6ba868cf8742927c3212..6427a01e82124dde4d3a5507b7dd0edd4373beac 100644 (file)
   <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
 <% end %>
 
   <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
 <% end %>
 
+<% if current_user %>
+  <div class="alert alert-warning">
+    <%= t ".already_logged_in_html", :user => tag.strong(current_user.display_name) %>
+  </div>
+<% end %>
+
 <%= bootstrap_form_tag(:action => "login", :html => { :id => "login_form" }) do |f| %>
   <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %>
 
 <%= bootstrap_form_tag(:action => "login", :html => { :id => "login_form" }) do |f| %>
   <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %>
 
index 7774a203a3cf73f34033c0e61b4489abfa67dd68..444d75a97faeb9917dc6b4ef0e8cdd1f4395a0d4 100644 (file)
@@ -1975,6 +1975,7 @@ en:
     new:
       tab_title: "Log In"
       login_to_authorize_html: "Log in to OpenStreetMap to access %{client_app_name}."
     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"
       email or username: "Email Address or Username"
       password: "Password"
       remember: "Remember me"
index fdcb7631d5d4a0f0fa96751041cc980b5fe789c0..643ebf8d874199c92f5f6b24c69b41ad4002b679 100644 (file)
@@ -1,6 +1,25 @@
 require "application_system_test_case"
 
 class UserLoginTest < ApplicationSystemTestCase
 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
 
   test "Show OpenID form when OpenID provider button is clicked" do
     visit login_path