]> git.openstreetmap.org Git - rails.git/commitdiff
Migrate UserBlocksController to use CanCanCan
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 7 Nov 2018 12:07:08 +0000 (13:07 +0100)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 7 Nov 2018 12:07:08 +0000 (13:07 +0100)
app/abilities/ability.rb
app/controllers/user_blocks_controller.rb
test/controllers/user_blocks_controller_test.rb

index f55f19e4ea7e2d918e81ee4a95f66990dea9b530..ea60d496fb7bb914218b14d2c455587820171838 100644 (file)
@@ -8,6 +8,7 @@ class Ability
     can [:index, :rss, :show, :comments], DiaryEntry
     can [:search, :search_latlon, :search_ca_postcode, :search_osm_nominatim,
          :search_geonames, :search_osm_nominatim_reverse, :search_geonames_reverse], :geocoder
+    can [:index, :show, :blocks_on, :blocks_by], UserBlock
 
     if user
       can :welcome, :site
@@ -18,6 +19,7 @@ class Ability
       if user.moderator?
         can [:index, :show, :resolve, :ignore, :reopen], Issue
         can :create, IssueComment
+        can [:new, :edit, :create, :update, :revoke], UserBlock
       end
 
       if user.administrator?
index 2b7bf3f58f7e190a5346abcaf45d3fa2c1a0e3a4..70dfddf83385cf40a7dd7f6994321c0f4d217f8d 100644 (file)
@@ -3,8 +3,9 @@ class UserBlocksController < ApplicationController
 
   before_action :authorize_web
   before_action :set_locale
-  before_action :require_user, :only => [:new, :create, :edit, :update, :revoke]
-  before_action :require_moderator, :only => [:new, :create, :edit, :update, :revoke]
+
+  authorize_resource
+
   before_action :lookup_user, :only => [:new, :create, :blocks_on, :blocks_by]
   before_action :lookup_user_block, :only => [:show, :edit, :update, :revoke]
   before_action :require_valid_params, :only => [:create, :update]
index 77b17519ea184ea946e02b97d67fa055230e350f..4371e3f82bb857b09482fda1361a774c24941123 100644 (file)
@@ -145,8 +145,7 @@ class UserBlocksControllerTest < ActionController::TestCase
 
     # Check that normal users can't load the block creation page
     get :new, :params => { :display_name => target_user.display_name }
-    assert_redirected_to user_blocks_path
-    assert_equal "You need to be a moderator to perform that action.", flash[:error]
+    assert_response :forbidden
 
     # Login as a moderator
     session[:user] = create(:moderator_user).id
@@ -189,8 +188,7 @@ class UserBlocksControllerTest < ActionController::TestCase
 
     # Check that normal users can't load the block edit page
     get :edit, :params => { :id => active_block.id }
-    assert_redirected_to user_blocks_path
-    assert_equal "You need to be a moderator to perform that action.", flash[:error]
+    assert_response :forbidden
 
     # Login as a moderator
     session[:user] = create(:moderator_user).id
@@ -361,8 +359,7 @@ class UserBlocksControllerTest < ActionController::TestCase
 
     # Check that normal users can't load the block revoke page
     get :revoke, :params => { :id => active_block.id }
-    assert_redirected_to user_blocks_path
-    assert_equal "You need to be a moderator to perform that action.", flash[:error]
+    assert_response :forbidden
 
     # Login as a moderator
     session[:user] = create(:moderator_user).id