]> git.openstreetmap.org Git - rails.git/commitdiff
Fix display of suspension message when a user is suspended mid-session
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 5 Jan 2022 18:14:30 +0000 (18:14 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 5 Jan 2022 18:21:42 +0000 (18:21 +0000)
Without the ability defined, the user is still logged out, but then
the deny_access check redirects to the login page. The re-login attempt
would then fail anyway, with an error message, but let's fix the abilities
and use the intended page.

app/abilities/ability.rb
test/system/user_suspension_test.rb [new file with mode: 0644]

index a45bf9a574ec84623d52c9d54ad19eda0c85a048..b8e21b4867e430d13d1955b2296e78696c249eb3 100644 (file)
@@ -23,7 +23,7 @@ class Ability
       can [:index, :show], Redaction
       can [:new, :create, :destroy], :session
       can [:index, :show, :data, :georss, :picture, :icon], Trace
-      can [:terms, :new, :create, :save,  :show, :auth_success, :auth_failure], User
+      can [:terms, :new, :create, :save, :suspended, :show, :auth_success, :auth_failure], User
       can [:index, :show, :blocks_on, :blocks_by], UserBlock
       can [:index, :show], Node
       can [:index, :show, :full, :ways_for_node], Way
diff --git a/test/system/user_suspension_test.rb b/test/system/user_suspension_test.rb
new file mode 100644 (file)
index 0000000..075303f
--- /dev/null
@@ -0,0 +1,15 @@
+require "application_system_test_case"
+
+class UserSuspensionTest < ApplicationSystemTestCase
+  test "User shown a message when suspended mid-session" do
+    user = create(:user)
+    sign_in_as(user)
+    visit edit_account_path
+    assert_content "My Settings"
+
+    user.update(:status => "suspended")
+
+    visit edit_account_path
+    assert_content "This decision will be reviewed by an administrator shortly"
+  end
+end