From 511ce4ab89c4f3dfb5c08d2fea9c9743c31793ea Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Thu, 14 Mar 2024 02:44:25 +0300 Subject: [PATCH 1/1] Collect node/way/relation CanCanCan subjects into arrays --- app/abilities/ability.rb | 4 +--- app/abilities/api_ability.rb | 10 ++-------- app/abilities/api_capability.rb | 10 ++-------- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/app/abilities/ability.rb b/app/abilities/ability.rb index ef4c0a778..547f9365e 100644 --- a/app/abilities/ability.rb +++ b/app/abilities/ability.rb @@ -5,9 +5,7 @@ class Ability def initialize(user) can [:relation, :relation_history, :way, :way_history, :node, :node_history, :query], :browse - can [:show], OldNode - can [:show], OldWay - can [:show], OldRelation + can [:show], [OldNode, OldWay, OldRelation] can [:show, :new], Note can :search, :direction can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :communities, :preview, :copyright, :key, :id], :site diff --git a/app/abilities/api_ability.rb b/app/abilities/api_ability.rb index 8ee280b3a..e20b849d1 100644 --- a/app/abilities/api_ability.rb +++ b/app/abilities/api_ability.rb @@ -29,20 +29,14 @@ class ApiAbility if user.terms_agreed? can [:create, :update, :upload, :close, :subscribe, :unsubscribe], Changeset can :create, ChangesetComment - can [:create, :update, :delete], Node - can [:create, :update, :delete], Way - can [:create, :update, :delete], Relation + can [:create, :update, :delete], [Node, Way, Relation] end if user.moderator? can [:destroy, :restore], ChangesetComment can :destroy, Note - if user.terms_agreed? - can :redact, OldNode - can :redact, OldWay - can :redact, OldRelation - end + can :redact, [OldNode, OldWay, OldRelation] if user.terms_agreed? end end end diff --git a/app/abilities/api_capability.rb b/app/abilities/api_capability.rb index 95d7ab9ab..f27dd2e63 100644 --- a/app/abilities/api_capability.rb +++ b/app/abilities/api_capability.rb @@ -23,19 +23,13 @@ class ApiCapability if user.terms_agreed? can [:create, :update, :upload, :close, :subscribe, :unsubscribe], Changeset if scope?(token, :write_api) can :create, ChangesetComment if scope?(token, :write_api) - can [:create, :update, :delete], Node if scope?(token, :write_api) - can [:create, :update, :delete], Way if scope?(token, :write_api) - can [:create, :update, :delete], Relation if scope?(token, :write_api) + can [:create, :update, :delete], [Node, Way, Relation] if scope?(token, :write_api) end if user.moderator? can [:destroy, :restore], ChangesetComment if scope?(token, :write_api) can :destroy, Note if scope?(token, :write_notes) - if user&.terms_agreed? - can :redact, OldNode if scope?(token, :write_api) || scope?(token, :write_redactions) - can :redact, OldWay if scope?(token, :write_api) || scope?(token, :write_redactions) - can :redact, OldRelation if scope?(token, :write_api) || scope?(token, :write_redactions) - end + can :redact, [OldNode, OldWay, OldRelation] if user&.terms_agreed? && (scope?(token, :write_api) || scope?(token, :write_redactions)) end end end -- 2.45.1