diff --git a/app/controllers/admin/communication/blocks/headings_controller.rb b/app/controllers/admin/communication/blocks/headings_controller.rb index 2374f946d6510ac2a447cfa6a6b32943f943e99b..d1983eb11a31a6fb8056c5b064face059fed0690 100644 --- a/app/controllers/admin/communication/blocks/headings_controller.rb +++ b/app/controllers/admin/communication/blocks/headings_controller.rb @@ -20,7 +20,12 @@ class Admin::Communication::Blocks::HeadingsController < Admin::Communication::B end def new - @heading.about = PolymorphicObjectFinder.find(params, :about, current_university, only: Communication::Block::Heading.permitted_about_types) + @heading.about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: Communication::Block::Heading.permitted_about_types + ) breadcrumb end diff --git a/app/controllers/admin/communication/blocks_controller.rb b/app/controllers/admin/communication/blocks_controller.rb index a83687a49130635d2b1bc6f4a9c014041c52a643..2e745313da1685cbf62509e26bd66eae8426b135 100644 --- a/app/controllers/admin/communication/blocks_controller.rb +++ b/app/controllers/admin/communication/blocks_controller.rb @@ -18,7 +18,12 @@ class Admin::Communication::BlocksController < Admin::Communication::Application end def new - @block.about = PolymorphicObjectFinder.find(params, :about, current_university, only: Communication::Block.permitted_about_types) + @block.about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: Communication::Block.permitted_about_types + ) breadcrumb end @@ -66,7 +71,12 @@ class Admin::Communication::BlocksController < Admin::Communication::Application end def paste - about = PolymorphicObjectFinder.find(params, :about, current_university, only: Communication::Block.permitted_about_types) + about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: Communication::Block.permitted_about_types + ) # On réattribue à @block pour bénéficier du calcul dans about_path @block = @block.paste(about) cookies.delete(Communication::Block::BLOCK_COPY_COOKIE, path: '/admin') diff --git a/app/controllers/admin/communication/contents_controller.rb b/app/controllers/admin/communication/contents_controller.rb index da8990934b6ab09f4f8188054ddf4cd7984748d9..17f13e68c21d5507b48ad3536b14ce143a0159aa 100644 --- a/app/controllers/admin/communication/contents_controller.rb +++ b/app/controllers/admin/communication/contents_controller.rb @@ -13,7 +13,12 @@ class Admin::Communication::ContentsController < Admin::Communication::Applicati protected def load_about - @about = PolymorphicObjectFinder.find(params, :about, current_university, only: Communication::Block.permitted_about_types) + @about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: Communication::Block.permitted_about_types + ) raise_403_unless can?(:edit, @about) end end \ No newline at end of file diff --git a/app/controllers/admin/communication/extranets/contacts_controller.rb b/app/controllers/admin/communication/extranets/contacts_controller.rb index ef4c5facb6b09dcae65dc6e0fe8e1074db6d68e8..3223163012c81be9d98098b41da5a85e8c98e8be 100644 --- a/app/controllers/admin/communication/extranets/contacts_controller.rb +++ b/app/controllers/admin/communication/extranets/contacts_controller.rb @@ -53,6 +53,11 @@ class Admin::Communication::Extranets::ContactsController < Admin::Communication protected def load_object - @object = PolymorphicObjectFinder.find(params, :object, current_university, only: Communication::Extranet::Connection.permitted_about_types) + @object = PolymorphicObjectFinder.find( + params, + key: :object, + university: current_university, + only: Communication::Extranet::Connection.permitted_about_types + ) end end diff --git a/app/controllers/admin/communication/websites/pages_controller.rb b/app/controllers/admin/communication/websites/pages_controller.rb index 62d30afac49baf81db8976e1eb4821f4c30389bf..d50f72ac0350757b66a21b84ad036d280175ffaf 100644 --- a/app/controllers/admin/communication/websites/pages_controller.rb +++ b/app/controllers/admin/communication/websites/pages_controller.rb @@ -134,7 +134,12 @@ class Admin::Communication::Websites::PagesController < Admin::Communication::We protected def load_object - @object = PolymorphicObjectFinder.find(params, :object, current_university, only: [@page.class.direct_connection_permitted_about_type]) + @object = PolymorphicObjectFinder.find( + params, + key: :object, + university: current_university, + only: [@page.class.direct_connection_permitted_about_type] + ) end def breadcrumb diff --git a/app/controllers/admin/communication/websites/permalinks_controller.rb b/app/controllers/admin/communication/websites/permalinks_controller.rb index 0cc701056e2ae0ffc787b19ad4e523ab60ddf549..7ca26206dace644e43226b8264565f0ba4ec830c 100644 --- a/app/controllers/admin/communication/websites/permalinks_controller.rb +++ b/app/controllers/admin/communication/websites/permalinks_controller.rb @@ -2,7 +2,12 @@ class Admin::Communication::Websites::PermalinksController < Admin::Communicatio def create @path = params['communication_website_permalink']['path'] - @about = PolymorphicObjectFinder.find(params, :about, current_university, only: Communication::Website::Permalink.permitted_about_types) + @about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: Communication::Website::Permalink.permitted_about_types + ) @permalink = @about.add_redirection(@path) end end \ No newline at end of file diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 2c5250e373dbb15f1e4bd74cebae09291c5789f2..4dc7f7af9db45d3c7ed3bbaadcaee8db2000a549 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -21,7 +21,12 @@ class Admin::UsersController < Admin::ApplicationController def favorite operation = params[:operation] - about = PolymorphicObjectFinder.find(params, :about, current_university, only: User::Favorite.permitted_about_types) + about = PolymorphicObjectFinder.find( + params, + key: :about, + university: current_university, + only: User::Favorite.permitted_about_types + ) if operation == 'add' current_user.add_favorite(about) else diff --git a/app/services/polymorphic_object_finder.rb b/app/services/polymorphic_object_finder.rb index 51517d8d082518f79ed66cc7d7fcd8c58ce199c8..214cc5522c664d38d9d1c9167df6fad8a496f609 100644 --- a/app/services/polymorphic_object_finder.rb +++ b/app/services/polymorphic_object_finder.rb @@ -1,8 +1,13 @@ class PolymorphicObjectFinder - # @block.about = Polymorphic.find params, :about, current_university, only: ["Communication::Website::Page"] + # @block.about = Polymorphic.find( + # params, + # key: :about, + # university: current_university, + # only: ["Communication::Website::Page"] + # ) # Rails uses ActiveRecord::Inheritance#polymorphic_name to hydrate the about_type. # Example: A Block for a Communication::Website::Page::Home will have about_type = "Communication::Website::Page" - def self.find(params, key, university, only: []) + def self.find(params, key:, university:, only: []) key_id = "#{key}_id".to_sym key_type = "#{key}_type".to_sym model_name = only.any? ? only.detect { |item| item == params[key_type] } : params[key_type]