]> git.openstreetmap.org Git - rails.git/commitdiff
Prevent unauthenticated users commenting on notes via the API
authorTom Hughes <tom@compton.nu>
Thu, 23 Nov 2023 16:46:36 +0000 (16:46 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 23 Nov 2023 16:56:07 +0000 (16:56 +0000)
app/abilities/api_ability.rb
test/abilities/api_abilities_test.rb

index fe39f5eb5aa2475a4d1c56fa9456e9a8842d117a..4876380d0dd272e708f0180be8b3df13d3d9c88a 100644 (file)
@@ -12,7 +12,7 @@ class ApiAbility
 
     if Settings.status != "database_offline"
       can [:show, :download, :query], Changeset
-      can [:index, :create, :comment, :feed, :show, :search], Note
+      can [:index, :create, :feed, :show, :search], Note
       can :index, Tracepoint
       can [:index, :show], User
       can [:index, :show], Node
@@ -31,7 +31,7 @@ class ApiAbility
       if Settings.status != "database_offline"
         can [:index, :new, :create, :show, :edit, :update, :destroy], ClientApplication
         can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
-        can [:close, :reopen], Note
+        can [:comment, :close, :reopen], Note
         can [:new, :create], Report
         can [:create, :show, :update, :destroy, :data], Trace
         can [:details, :gpx_files], User
index 7734ce996f7f095dffc871c2b01d80cfc9aa3ce8..8ddc54561c52b93b7110fc75681b471810f8ac1d 100644 (file)
@@ -9,11 +9,11 @@ class GuestApiAbilityTest < ApiAbilityTest
   test "note permissions for a guest" do
     ability = ApiAbility.new nil
 
-    [:index, :create, :comment, :feed, :show, :search].each do |action|
+    [:index, :create, :feed, :show, :search].each do |action|
       assert ability.can?(action, Note), "should be able to #{action} Notes"
     end
 
-    [:close, :reopen, :destroy].each do |action|
+    [:comment, :close, :reopen, :destroy].each do |action|
       assert ability.cannot?(action, Note), "should not be able to #{action} Notes"
     end
   end