Mark account suspended flash message as HTML safe
authorTom Hughes <tom@compton.nu>
Tue, 18 Jul 2017 23:31:03 +0000 (00:31 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 18 Jul 2017 23:31:03 +0000 (00:31 +0100)
Fixes #1590

app/controllers/user_controller.rb
test/integration/user_login_test.rb

index 82373c9..f80df86 100644 (file)
@@ -547,7 +547,7 @@ class UserController < ApplicationController
         when "active", "confirmed" then
           successful_login(user, request.env["omniauth.params"]["referer"])
         when "suspended" then
-          failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}")
+          failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}").html_safe
         else
           failed_login t("user.login.auth failure")
         end
@@ -575,7 +575,7 @@ class UserController < ApplicationController
     elsif user = User.authenticate(:username => username, :password => password, :pending => true)
       unconfirmed_login(user)
     elsif User.authenticate(:username => username, :password => password, :suspended => true)
-      failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}"), username
+      failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}").html_safe, username
     else
       failed_login t("user.login.auth failure"), username
     end
index 538c039..2c3e61b 100644 (file)
@@ -113,7 +113,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_email_password_suspended_upcase
@@ -123,7 +125,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_email_password_suspended_titlecase
@@ -133,7 +137,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_email_password_blocked
@@ -264,7 +270,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_username_password_suspended_upcase
@@ -274,7 +282,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_username_password_suspended_downcase
@@ -284,7 +294,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
 
     assert_template "login"
     assert_select "span.username", false
-    assert_select "div.flash.error", /your account has been suspended/
+    assert_select "div.flash.error", /your account has been suspended/ do
+      assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
+    end
   end
 
   def test_login_username_password_blocked