Make it easier to customize allowed parameters

When customizing CONSUL, one of the most common actions is adding a new
field to a form.

This requires modifying the permitted/allowed parameters. However, in
most cases, the method returning these parameters returned an instance
of `ActionController::Parameters`, so adding more parameters to it
wasn't easy.

So customizing the code required copying the method returning those
parameters and adding the new ones. For example:

```
def something_params
  params.require(:something).permit(
    :one_consul_attribute,
    :another_consul_attribute,
    :my_custom_attribute
  )
end
```

This meant that, if the `something_params` method changed in CONSUL, the
customization of this method had to be updated as well.

So we're extracting the logic returning the parameters to a method which
returns an array. Now this code can be customized without copying the
original method:

```
alias_method :consul_allowed_params, :allowed_params

def allowed_params
  consul_allowed_params + [:my_custom_attribute]
end
```
This commit is contained in:
Javi Martín
2022-03-18 20:47:12 +01:00
parent 1415be607e
commit 11832cc07d
69 changed files with 395 additions and 137 deletions

View File

@@ -22,7 +22,11 @@ class AccountController < ApplicationController
end end
def account_params def account_params
attributes = if @account.organization? params.require(:account).permit(allowed_params)
end
def allowed_params
if @account.organization?
[:phone_number, :email_on_comment, :email_on_comment_reply, :newsletter, [:phone_number, :email_on_comment, :email_on_comment_reply, :newsletter,
organization_attributes: [:name, :responsible_name]] organization_attributes: [:name, :responsible_name]]
else else
@@ -30,6 +34,5 @@ class AccountController < ApplicationController
:email_on_comment_reply, :email_on_direct_message, :email_digest, :newsletter, :email_on_comment_reply, :email_on_direct_message, :email_digest, :newsletter,
:official_position_badge, :recommended_debates, :recommended_proposals] :official_position_badge, :recommended_debates, :recommended_proposals]
end end
params.require(:account).permit(*attributes)
end end
end end

View File

@@ -63,9 +63,11 @@ class Admin::AdminNotificationsController < Admin::BaseController
private private
def admin_notification_params def admin_notification_params
attributes = [:link, :segment_recipient, translation_params(AdminNotification)] params.require(:admin_notification).permit(allowed_params)
end
params.require(:admin_notification).permit(attributes) def allowed_params
[:link, :segment_recipient, translation_params(AdminNotification)]
end end
def resource def resource

View File

@@ -41,6 +41,10 @@ class Admin::AdministratorsController < Admin::BaseController
private private
def update_administrator_params def update_administrator_params
params.require(:administrator).permit(:description) params.require(:administrator).permit(allowed_params)
end
def allowed_params
[:description]
end end
end end

View File

@@ -38,11 +38,13 @@ class Admin::BannersController < Admin::BaseController
private private
def banner_params def banner_params
attributes = [:target_url, :post_started_at, :post_ended_at, params.require(:banner).permit(allowed_params)
:background_color, :font_color, end
def allowed_params
[:target_url, :post_started_at, :post_ended_at, :background_color, :font_color,
translation_params(Banner), translation_params(Banner),
web_section_ids: []] web_section_ids: []]
params.require(:banner).permit(*attributes)
end end
def banner_styles def banner_styles

View File

@@ -91,10 +91,14 @@ class Admin::BudgetInvestmentsController < Admin::BaseController
end end
def budget_investment_params def budget_investment_params
params.require(:budget_investment).permit(allowed_params)
end
def allowed_params
attributes = [:external_url, :heading_id, :administrator_id, :tag_list, attributes = [:external_url, :heading_id, :administrator_id, :tag_list,
:valuation_tag_list, :incompatible, :visible_to_valuators, :selected, :valuation_tag_list, :incompatible, :visible_to_valuators, :selected,
:milestone_tag_list, valuator_ids: [], valuator_group_ids: []] :milestone_tag_list, valuator_ids: [], valuator_group_ids: []]
params.require(:budget_investment).permit(attributes, translation_params(Budget::Investment)) [*attributes, translation_params(Budget::Investment)]
end end
def load_budget def load_budget

View File

@@ -55,6 +55,10 @@ class Admin::BudgetsController < Admin::BaseController
private private
def budget_params def budget_params
params.require(:budget).permit(allowed_params)
end
def allowed_params
descriptions = Budget::Phase::PHASE_KINDS.map { |p| "description_#{p}" }.map(&:to_sym) descriptions = Budget::Phase::PHASE_KINDS.map { |p| "description_#{p}" }.map(&:to_sym)
valid_attributes = [:phase, valid_attributes = [:phase,
:currency_symbol, :currency_symbol,
@@ -64,7 +68,8 @@ class Admin::BudgetsController < Admin::BaseController
valuator_ids: [], valuator_ids: [],
image_attributes: image_attributes image_attributes: image_attributes
] + descriptions ] + descriptions
params.require(:budget).permit(*valid_attributes, *report_attributes, translation_params(Budget))
[*valid_attributes, *report_attributes, translation_params(Budget)]
end end
def load_budget def load_budget

View File

@@ -33,14 +33,14 @@ class Admin::BudgetsWizard::BudgetsController < Admin::BudgetsWizard::BaseContro
private private
def budget_params def budget_params
params.require(:budget).permit(*allowed_params) params.require(:budget).permit(allowed_params)
end end
def allowed_params def allowed_params
valid_attributes = [:currency_symbol, :voting_style, :hide_money, administrator_ids: [], valid_attributes = [:currency_symbol, :voting_style, :hide_money, administrator_ids: [],
valuator_ids: [], image_attributes: image_attributes] valuator_ids: [], image_attributes: image_attributes]
valid_attributes + [translation_params(Budget)] [*valid_attributes, translation_params(Budget)]
end end
def groups_index def groups_index

View File

@@ -54,14 +54,16 @@ class Admin::Dashboard::ActionsController < Admin::Dashboard::BaseController
end end
def dashboard_action_params def dashboard_action_params
params params.require(:dashboard_action).permit(allowed_params)
.require(:dashboard_action) end
.permit(
def allowed_params
[
:title, :description, :short_description, :request_to_administrators, :day_offset, :title, :description, :short_description, :request_to_administrators, :day_offset,
:required_supports, :order, :active, :action_type, :published_proposal, :required_supports, :order, :active, :action_type, :published_proposal,
documents_attributes: document_attributes, documents_attributes: document_attributes,
links_attributes: [:id, :label, :url, :_destroy] links_attributes: [:id, :label, :url, :_destroy]
) ]
end end
def dashboard_action def dashboard_action

View File

@@ -43,6 +43,10 @@ class Admin::GeozonesController < Admin::BaseController
private private
def geozone_params def geozone_params
params.require(:geozone).permit(:name, :external_code, :census_code, :html_map_coordinates) params.require(:geozone).permit(allowed_params)
end
def allowed_params
[:name, :external_code, :census_code, :html_map_coordinates]
end end
end end

View File

@@ -40,11 +40,11 @@ class Admin::Legislation::DraftVersionsController < Admin::Legislation::BaseCont
private private
def draft_version_params def draft_version_params
params.require(:legislation_draft_version).permit( params.require(:legislation_draft_version).permit(allowed_params)
:status, end
:final_version,
translation_params(Legislation::DraftVersion) def allowed_params
) [:status, :final_version, translation_params(Legislation::DraftVersion)]
end end
def resource def resource

View File

@@ -24,11 +24,7 @@ class Admin::Legislation::HomepagesController < Admin::Legislation::BaseControll
end end
def allowed_params def allowed_params
[ [:homepage, :homepage_enabled, translation_params(::Legislation::Process)]
:homepage,
:homepage_enabled,
translation_params(::Legislation::Process)
]
end end
def resource def resource

View File

@@ -45,11 +45,15 @@ class Admin::Legislation::QuestionsController < Admin::Legislation::BaseControll
end end
def question_params def question_params
params.require(:legislation_question).permit( params.require(:legislation_question).permit(allowed_params)
end
def allowed_params
[
translation_params(::Legislation::Question), translation_params(::Legislation::Question),
question_options_attributes: [:id, :_destroy, question_options_attributes: [:id, :_destroy,
translation_params(::Legislation::QuestionOption)] translation_params(::Legislation::QuestionOption)]
) ]
end end
def resource def resource

View File

@@ -16,6 +16,10 @@ class Admin::LocalCensusRecords::ImportsController < Admin::LocalCensusRecords::
def local_census_records_import_params def local_census_records_import_params
return {} unless params[:local_census_records_import].present? return {} unless params[:local_census_records_import].present?
params.require(:local_census_records_import).permit(:file) params.require(:local_census_records_import).permit(allowed_params)
end
def allowed_params
[:file]
end end
end end

View File

@@ -34,7 +34,10 @@ class Admin::LocalCensusRecordsController < Admin::BaseController
private private
def local_census_record_params def local_census_record_params
attributes = [:document_type, :document_number, :date_of_birth, :postal_code] params.require(:local_census_record).permit(allowed_params)
params.require(:local_census_record).permit(*attributes) end
def allowed_params
[:document_type, :document_number, :date_of_birth, :postal_code]
end end
end end

View File

@@ -42,6 +42,10 @@ class Admin::MilestoneStatusesController < Admin::BaseController
end end
def status_params def status_params
params.require(:milestone_status).permit([:name, :description]) params.require(:milestone_status).permit(allowed_params)
end
def allowed_params
[:name, :description]
end end
end end

View File

@@ -43,11 +43,15 @@ class Admin::MilestonesController < Admin::BaseController
private private
def milestone_params def milestone_params
attributes = [:publication_date, :status_id, params.require(:milestone).permit(allowed_params)
translation_params(Milestone), end
image_attributes: image_attributes, documents_attributes: document_attributes]
params.require(:milestone).permit(*attributes) def allowed_params
[
:publication_date, :status_id,
translation_params(Milestone),
image_attributes: image_attributes, documents_attributes: document_attributes
]
end end
def load_milestoneable def load_milestoneable

View File

@@ -60,6 +60,10 @@ class Admin::NewslettersController < Admin::BaseController
private private
def newsletter_params def newsletter_params
params.require(:newsletter).permit(:subject, :segment_recipient, :from, :body) params.require(:newsletter).permit(allowed_params)
end
def allowed_params
[:subject, :segment_recipient, :from, :body]
end end
end end

View File

@@ -26,6 +26,10 @@ class Admin::OfficialsController < Admin::BaseController
private private
def user_params def user_params
params.require(:user).permit(:official_position, :official_level) params.require(:user).permit(allowed_params)
end
def allowed_params
[:official_position, :official_level]
end end
end end

View File

@@ -29,6 +29,10 @@ class Admin::Poll::ActivePollsController < Admin::Poll::BaseController
end end
def active_poll_params def active_poll_params
params.require(:active_poll).permit(translation_params(ActivePoll)) params.require(:active_poll).permit(allowed_params)
end
def allowed_params
[translation_params(ActivePoll)]
end end
end end

View File

@@ -39,6 +39,10 @@ class Admin::Poll::BoothsController < Admin::Poll::BaseController
private private
def booth_params def booth_params
params.require(:poll_booth).permit(:name, :location) params.require(:poll_booth).permit(allowed_params)
end
def allowed_params
[:name, :location]
end end
end end

View File

@@ -76,10 +76,14 @@ class Admin::Poll::PollsController < Admin::Poll::BaseController
end end
def poll_params def poll_params
params.require(:poll).permit(allowed_params)
end
def allowed_params
attributes = [:name, :starts_at, :ends_at, :geozone_restricted, :budget_id, :related_sdg_list, attributes = [:name, :starts_at, :ends_at, :geozone_restricted, :budget_id, :related_sdg_list,
geozone_ids: [], image_attributes: image_attributes] geozone_ids: [], image_attributes: image_attributes]
params.require(:poll).permit(*attributes, *report_attributes, translation_params(Poll)) [*attributes, *report_attributes, translation_params(Poll)]
end end
def search_params def search_params

View File

@@ -32,8 +32,11 @@ class Admin::Poll::Questions::Answers::ImagesController < Admin::Poll::BaseContr
private private
def images_params def images_params
params.require(:poll_question_answer).permit(:answer_id, params.require(:poll_question_answer).permit(allowed_params)
images_attributes: image_attributes) end
def allowed_params
[:answer_id, images_attributes: image_attributes]
end end
def load_answer def load_answer

View File

@@ -44,7 +44,11 @@ class Admin::Poll::Questions::Answers::VideosController < Admin::Poll::BaseContr
private private
def video_params def video_params
params.require(:poll_question_answer_video).permit(:title, :url, :answer_id) params.require(:poll_question_answer_video).permit(allowed_params)
end
def allowed_params
[:title, :url, :answer_id]
end end
def load_answer def load_answer

View File

@@ -51,12 +51,14 @@ class Admin::Poll::Questions::AnswersController < Admin::Poll::BaseController
private private
def answer_params def answer_params
params.require(:poll_question_answer).permit(allowed_params)
end
def allowed_params
attributes = [:title, :description, :given_order, :question_id, attributes = [:title, :description, :given_order, :question_id,
documents_attributes: document_attributes] documents_attributes: document_attributes]
params.require(:poll_question_answer).permit( [*attributes, translation_params(Poll::Question::Answer)]
*attributes, translation_params(Poll::Question::Answer)
)
end end
def load_answer def load_answer

View File

@@ -54,8 +54,13 @@ class Admin::Poll::QuestionsController < Admin::Poll::BaseController
private private
def question_params def question_params
params.require(:poll_question).permit(allowed_params)
end
def allowed_params
attributes = [:poll_id, :question, :proposal_id] attributes = [:poll_id, :question, :proposal_id]
params.require(:poll_question).permit(*attributes, translation_params(Poll::Question))
[*attributes, translation_params(Poll::Question)]
end end
def search_params def search_params

View File

@@ -56,9 +56,13 @@ class Admin::Poll::ShiftsController < Admin::Poll::BaseController
end end
def shift_params def shift_params
date_attributes = [:vote_collection_date, :recount_scrutiny_date] shift_params = params.require(:shift).permit(allowed_params)
attributes = [:booth_id, :officer_id, :task, date: date_attributes]
shift_params = params.require(:shift).permit(*attributes)
shift_params.merge(date: shift_params[:date]["#{shift_params[:task]}_date".to_sym]) shift_params.merge(date: shift_params[:date]["#{shift_params[:task]}_date".to_sym])
end end
def allowed_params
date_attributes = [:vote_collection_date, :recount_scrutiny_date]
[:booth_id, :officer_id, :task, date: date_attributes]
end
end end

View File

@@ -35,6 +35,10 @@ class Admin::ProposalsController < Admin::BaseController
end end
def proposal_params def proposal_params
params.require(:proposal).permit(:selected) params.require(:proposal).permit(allowed_params)
end
def allowed_params
[:selected]
end end
end end

View File

@@ -43,7 +43,11 @@ class Admin::SettingsController < Admin::BaseController
private private
def settings_params def settings_params
params.require(:setting).permit(:value) params.require(:setting).permit(allowed_params)
end
def allowed_params
[:value]
end end
def content_type_params def content_type_params

View File

@@ -26,11 +26,10 @@ class Admin::SignatureSheetsController < Admin::BaseController
private private
def signature_sheet_params def signature_sheet_params
params.require(:signature_sheet).permit( params.require(:signature_sheet).permit(allowed_params)
:signable_type, end
:signable_id,
:title, def allowed_params
:required_fields_to_verify [:signable_type, :signable_id, :title, :required_fields_to_verify]
)
end end
end end

View File

@@ -114,7 +114,11 @@ class Admin::SiteCustomization::ContentBlocksController < Admin::SiteCustomizati
private private
def content_block_params def content_block_params
params.require(:site_customization_content_block).permit(:name, :locale, :body) params.require(:site_customization_content_block).permit(allowed_params)
end
def allowed_params
[:name, :locale, :body]
end end
def is_heading_content_block?(name) def is_heading_content_block?(name)

View File

@@ -38,6 +38,10 @@ class Admin::SiteCustomization::ImagesController < Admin::SiteCustomization::Bas
private private
def image_params def image_params
params.require(:site_customization_image).permit(:image) params.require(:site_customization_image).permit(allowed_params)
end
def allowed_params
[:image]
end end
end end

View File

@@ -35,11 +35,13 @@ class Admin::SiteCustomization::PagesController < Admin::SiteCustomization::Base
private private
def page_params def page_params
params.require(:site_customization_page).permit(allowed_params)
end
def allowed_params
attributes = [:slug, :more_info_flag, :print_content_flag, :status] attributes = [:slug, :more_info_flag, :print_content_flag, :status]
params.require(:site_customization_page).permit(*attributes, [*attributes, translation_params(SiteCustomization::Page)]
translation_params(SiteCustomization::Page)
)
end end
def resource def resource

View File

@@ -45,6 +45,10 @@ class Admin::ValuatorGroupsController < Admin::BaseController
private private
def group_params def group_params
params.require(:valuator_group).permit(:name) params.require(:valuator_group).permit(allowed_params)
end
def allowed_params
[:name]
end end
end end

View File

@@ -44,7 +44,10 @@ class Admin::ValuatorsController < Admin::BaseController
def valuator_params def valuator_params
params[:valuator][:description] = nil if params[:valuator][:description].blank? params[:valuator][:description] = nil if params[:valuator][:description].blank?
params.require(:valuator).permit(:user_id, :description, :valuator_group_id, params.require(:valuator).permit(allowed_params)
:can_comment, :can_edit_dossier) end
def allowed_params
[:user_id, :description, :valuator_group_id, :can_comment, :can_edit_dossier]
end end
end end

View File

@@ -9,6 +9,10 @@ class Admin::Widget::FeedsController < Admin::BaseController
private private
def feed_params def feed_params
params.require(:widget_feed).permit(:limit) params.require(:widget_feed).permit(allowed_params)
end
def allowed_params
[:limit]
end end
end end

View File

@@ -32,7 +32,11 @@ module Budgets
private private
def line_params def line_params
params.permit(:investment_id, :budget_id) params.permit(allowed_params)
end
def allowed_params
[:investment_id, :budget_id]
end end
def load_budget def load_budget

View File

@@ -118,12 +118,17 @@ module Budgets
end end
def investment_params def investment_params
params.require(:budget_investment).permit(allowed_params)
end
def allowed_params
attributes = [:heading_id, :tag_list, :organization_name, :location, attributes = [:heading_id, :tag_list, :organization_name, :location,
:terms_of_service, :related_sdg_list, :terms_of_service, :related_sdg_list,
image_attributes: image_attributes, image_attributes: image_attributes,
documents_attributes: document_attributes, documents_attributes: document_attributes,
map_location_attributes: map_location_attributes] map_location_attributes: map_location_attributes]
params.require(:budget_investment).permit(attributes, translation_params(Budget::Investment))
[*attributes, translation_params(Budget::Investment)]
end end
def load_ballot def load_ballot

View File

@@ -54,8 +54,14 @@ class CommentsController < ApplicationController
private private
def comment_params def comment_params
params.require(:comment).permit(:commentable_type, :commentable_id, :parent_id, params.require(:comment).permit(allowed_params)
:body, :as_moderator, :as_administrator, :valuation) end
def allowed_params
[
:commentable_type, :commentable_id, :parent_id,
:body, :as_moderator, :as_administrator, :valuation
]
end end
def build_comment def build_comment

View File

@@ -54,7 +54,12 @@ module Admin::BudgetGroupsActions
end end
def budget_group_params def budget_group_params
params.require(:budget_group).permit(allowed_params)
end
def allowed_params
valid_attributes = [:max_votable_headings] valid_attributes = [:max_votable_headings]
params.require(:budget_group).permit(*valid_attributes, translation_params(Budget::Group))
[*valid_attributes, translation_params(Budget::Group)]
end end
end end

View File

@@ -55,7 +55,12 @@ module Admin::BudgetHeadingsActions
end end
def budget_heading_params def budget_heading_params
params.require(:budget_heading).permit(allowed_params)
end
def allowed_params
valid_attributes = [:price, :population, :allow_custom_content, :latitude, :longitude, :max_ballot_lines] valid_attributes = [:price, :population, :allow_custom_content, :latitude, :longitude, :max_ballot_lines]
params.require(:budget_heading).permit(*valid_attributes, translation_params(Budget::Heading))
[*valid_attributes, translation_params(Budget::Heading)]
end end
end end

View File

@@ -40,8 +40,13 @@ module Admin::BudgetPhasesActions
end end
def budget_phase_params def budget_phase_params
params.require(:budget_phase).permit(allowed_params)
end
def allowed_params
valid_attributes = [:starts_at, :ends_at, :enabled, valid_attributes = [:starts_at, :ends_at, :enabled,
image_attributes: image_attributes] image_attributes: image_attributes]
params.require(:budget_phase).permit(*valid_attributes, translation_params(Budget::Phase))
[*valid_attributes, translation_params(Budget::Phase)]
end end
end end

View File

@@ -40,11 +40,15 @@ module Admin::Widget::CardsActions
private private
def card_params def card_params
params.require(:widget_card).permit( params.require(:widget_card).permit(allowed_params)
end
def allowed_params
[
:link_url, :button_text, :button_url, :alignment, :header, :columns, :link_url, :button_text, :button_url, :alignment, :header, :columns,
translation_params(Widget::Card), translation_params(Widget::Card),
image_attributes: image_attributes image_attributes: image_attributes
) ]
end end
def header_card? def header_card?

View File

@@ -56,10 +56,10 @@ class Dashboard::PollsController < Dashboard::BaseController
end end
def poll_params def poll_params
params.require(:poll).permit(poll_attributes) params.require(:poll).permit(allowed_params)
end end
def poll_attributes def allowed_params
[:name, :starts_at, :ends_at, :description, :results_enabled, [:name, :starts_at, :ends_at, :description, :results_enabled,
questions_attributes: question_attributes] questions_attributes: question_attributes]
end end

View File

@@ -53,8 +53,11 @@ class DebatesController < ApplicationController
private private
def debate_params def debate_params
attributes = [:tag_list, :terms_of_service, :related_sdg_list] params.require(:debate).permit(allowed_params)
params.require(:debate).permit(attributes, translation_params(Debate)) end
def allowed_params
[:tag_list, :terms_of_service, :related_sdg_list, translation_params(Debate)]
end end
def resource_model def resource_model

View File

@@ -27,7 +27,11 @@ class DirectMessagesController < ApplicationController
private private
def direct_message_params def direct_message_params
params.require(:direct_message).permit(:title, :body) params.require(:direct_message).permit(allowed_params)
end
def allowed_params
[:title, :body]
end end
def parsed_params def parsed_params

View File

@@ -28,7 +28,13 @@ class DirectUploadsController < ApplicationController
def direct_upload_params def direct_upload_params
params.require(:direct_upload) params.require(:direct_upload)
.permit(:resource, :resource_type, :resource_id, :resource_relation, .permit(allowed_params)
:attachment, :cached_attachment, attachment_attributes: []) end
def allowed_params
[
:resource, :resource_type, :resource_id, :resource_relation,
:attachment, :cached_attachment, attachment_attributes: []
]
end end
end end

View File

@@ -17,7 +17,11 @@ class FollowsController < ApplicationController
private private
def follow_params def follow_params
params.permit(:followable_type, :followable_id) params.permit(allowed_params)
end
def allowed_params
[:followable_type, :followable_id]
end end
def followable_translation_key(followable) def followable_translation_key(followable)

View File

@@ -95,7 +95,11 @@ class Legislation::AnnotationsController < Legislation::BaseController
def annotation_params def annotation_params
params params
.require(:legislation_annotation) .require(:legislation_annotation)
.permit(:quote, :text, ranges: [:start, :startOffset, :end, :endOffset]) .permit(allowed_params)
end
def allowed_params
[:quote, :text, ranges: [:start, :startOffset, :end, :endOffset]]
end end
def track_event def track_event

View File

@@ -29,7 +29,11 @@ class Legislation::AnswersController < Legislation::BaseController
private private
def answer_params def answer_params
params.require(:legislation_answer).permit(:legislation_question_option_id) params.require(:legislation_answer).permit(allowed_params)
end
def allowed_params
[:legislation_question_option_id]
end end
def track_event def track_event

View File

@@ -43,11 +43,17 @@ class Legislation::ProposalsController < Legislation::BaseController
private private
def proposal_params def proposal_params
params.require(:legislation_proposal).permit(:legislation_process_id, :title, params.require(:legislation_proposal).permit(allowed_params)
end
def allowed_params
[
:legislation_process_id, :title,
:summary, :description, :video_url, :tag_list, :summary, :description, :video_url, :tag_list,
:terms_of_service, :geozone_id, :terms_of_service, :geozone_id,
image_attributes: image_attributes, image_attributes: image_attributes,
documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id]) documents_attributes: [:id, :title, :attachment, :cached_attachment, :user_id]
]
end end
def resource_model def resource_model

View File

@@ -43,11 +43,16 @@ class Management::Budgets::InvestmentsController < Management::BaseController
private private
def investment_params def investment_params
params.require(:budget_investment).permit(allowed_params)
end
def allowed_params
attributes = [:external_url, :heading_id, :tag_list, :organization_name, :location, attributes = [:external_url, :heading_id, :tag_list, :organization_name, :location,
image_attributes: image_attributes, image_attributes: image_attributes,
documents_attributes: document_attributes, documents_attributes: document_attributes,
map_location_attributes: map_location_attributes] map_location_attributes: map_location_attributes]
params.require(:budget_investment).permit(attributes, translation_params(Budget::Investment))
[*attributes, translation_params(Budget::Investment)]
end end
def only_verified_users def only_verified_users

View File

@@ -33,8 +33,11 @@ class Management::DocumentVerificationsController < Management::BaseController
private private
def document_verification_params def document_verification_params
params.require(:document_verification).permit(:document_type, :document_number, params.require(:document_verification).permit(allowed_params)
:date_of_birth, :postal_code) end
def allowed_params
[:document_type, :document_number, :date_of_birth, :postal_code]
end end
def set_document def set_document

View File

@@ -16,6 +16,10 @@ class Management::EmailVerificationsController < Management::BaseController
private private
def email_verification_params def email_verification_params
params.require(:email_verification).permit(:document_type, :document_number, :email) params.require(:email_verification).permit(allowed_params)
end
def allowed_params
[:document_type, :document_number, :email]
end end
end end

View File

@@ -50,10 +50,15 @@ class Management::ProposalsController < Management::BaseController
end end
def proposal_params def proposal_params
params.require(:proposal).permit(allowed_params)
end
def allowed_params
attributes = [:video_url, :responsible_name, :tag_list, attributes = [:video_url, :responsible_name, :tag_list,
:terms_of_service, :geozone_id, :terms_of_service, :geozone_id,
map_location_attributes: map_location_attributes] map_location_attributes: map_location_attributes]
params.require(:proposal).permit(attributes, translation_params(Proposal))
[*attributes, translation_params(Proposal)]
end end
def resource_model def resource_model

View File

@@ -37,7 +37,11 @@ class Management::UsersController < Management::BaseController
private private
def user_params def user_params
params.require(:user).permit(:document_type, :document_number, :username, :email, :date_of_birth) params.require(:user).permit(allowed_params)
end
def allowed_params
[:document_type, :document_number, :username, :email, :date_of_birth]
end end
def destroy_session def destroy_session

View File

@@ -57,6 +57,10 @@ class Officing::BallotSheetsController < Officing::BaseController
end end
def ballot_sheet_params def ballot_sheet_params
params.permit(:data, :poll_id, :officer_assignment_id) params.permit(allowed_params)
end
def allowed_params
[:data, :poll_id, :officer_assignment_id]
end end
end end

View File

@@ -19,7 +19,10 @@ class Officing::ResidenceController < Officing::BaseController
private private
def residence_params def residence_params
params.require(:residence).permit(:document_number, :document_type, :year_of_birth, params.require(:residence).permit(allowed_params)
:date_of_birth, :postal_code) end
def allowed_params
[:document_number, :document_type, :year_of_birth, :date_of_birth, :postal_code]
end end
end end

View File

@@ -29,7 +29,13 @@ class Organizations::RegistrationsController < Devise::RegistrationsController
private private
def sign_up_params def sign_up_params
params.require(:user).permit(:email, :password, :phone_number, :password_confirmation, :terms_of_service, params.require(:user).permit(allowed_params)
organization_attributes: [:name, :responsible_name]) end
def allowed_params
[
:email, :password, :phone_number, :password_confirmation, :terms_of_service,
organization_attributes: [:name, :responsible_name]
]
end end
end end

View File

@@ -27,6 +27,10 @@ class ProposalNotificationsController < ApplicationController
private private
def proposal_notification_params def proposal_notification_params
params.require(:proposal_notification).permit(:title, :body, :proposal_id) params.require(:proposal_notification).permit(allowed_params)
end
def allowed_params
[:title, :body, :proposal_id]
end end
end end

View File

@@ -92,19 +92,26 @@ class ProposalsController < ApplicationController
private private
def proposal_params def proposal_params
params.require(:proposal).permit(allowed_params)
end
def allowed_params
attributes = [:video_url, :responsible_name, :tag_list, :terms_of_service, attributes = [:video_url, :responsible_name, :tag_list, :terms_of_service,
:geozone_id, :related_sdg_list, :geozone_id, :related_sdg_list,
image_attributes: image_attributes, image_attributes: image_attributes,
documents_attributes: document_attributes, documents_attributes: document_attributes,
map_location_attributes: map_location_attributes] map_location_attributes: map_location_attributes]
translations_attributes = translation_params(Proposal, except: :retired_explanation) translations_attributes = translation_params(Proposal, except: :retired_explanation)
params.require(:proposal).permit(attributes, translations_attributes)
[*attributes, translations_attributes]
end end
def retired_params def retired_params
attributes = [:retired_reason] params.require(:proposal).permit(allowed_retired_params)
translations_attributes = translation_params(Proposal, only: :retired_explanation) end
params.require(:proposal).permit(attributes, translations_attributes)
def allowed_retired_params
[:retired_reason, translation_params(Proposal, only: :retired_explanation)]
end end
def resource_model def resource_model

View File

@@ -14,7 +14,11 @@ class RemoteTranslationsController < ApplicationController
private private
def remote_translations_params def remote_translations_params
params.permit(:remote_translations) params.permit(allowed_params)
end
def allowed_params
[:remote_translations]
end end
def set_remote_translations def set_remote_translations

View File

@@ -37,7 +37,12 @@ class SDGManagement::LocalTargetsController < SDGManagement::BaseController
private private
def local_target_params def local_target_params
params.require(:sdg_local_target).permit(allowed_params)
end
def allowed_params
translations_attributes = translation_params(::SDG::LocalTarget) translations_attributes = translation_params(::SDG::LocalTarget)
params.require(:sdg_local_target).permit(:code, :target_id, translations_attributes)
[:code, :target_id, translations_attributes]
end end
end end

View File

@@ -47,7 +47,11 @@ class TopicsController < ApplicationController
private private
def topic_params def topic_params
params.require(:topic).permit(:title, :description) params.require(:topic).permit(allowed_params)
end
def allowed_params
[:title, :description]
end end
def load_community def load_community

View File

@@ -46,7 +46,11 @@ class Users::ConfirmationsController < Devise::ConfirmationsController
protected protected
def resource_params def resource_params
params.require(resource_name).permit(:password, :password_confirmation, :email) params.require(resource_name).permit(allowed_params)
end
def allowed_params
[:password, :password_confirmation, :email]
end end
private private

View File

@@ -60,9 +60,15 @@ class Users::RegistrationsController < Devise::RegistrationsController
def sign_up_params def sign_up_params
params[:user].delete(:redeemable_code) if params[:user].present? && params[:user][:redeemable_code].blank? params[:user].delete(:redeemable_code) if params[:user].present? && params[:user][:redeemable_code].blank?
params.require(:user).permit(:username, :email, :password, params.require(:user).permit(allowed_params)
end
def allowed_params
[
:username, :email, :password,
:password_confirmation, :terms_of_service, :locale, :password_confirmation, :terms_of_service, :locale,
:redeemable_code) :redeemable_code
]
end end
def configure_permitted_parameters def configure_permitted_parameters

View File

@@ -98,9 +98,15 @@ class Valuation::BudgetInvestmentsController < Valuation::BaseController
end end
def valuation_params def valuation_params
params.require(:budget_investment).permit(:price, :price_first_year, :price_explanation, params.require(:budget_investment).permit(allowed_params)
end
def allowed_params
[
:price, :price_first_year, :price_explanation,
:feasibility, :unfeasibility_explanation, :feasibility, :unfeasibility_explanation,
:duration, :valuation_finished) :duration, :valuation_finished
]
end end
def restrict_access def restrict_access

View File

@@ -40,7 +40,11 @@ class Verification::LetterController < ApplicationController
private private
def letter_params def letter_params
params.require(:verification_letter).permit(:verification_code, :email, :password) params.require(:verification_letter).permit(allowed_params)
end
def allowed_params
[:verification_code, :email, :password]
end end
def verify_phone! def verify_phone!

View File

@@ -20,6 +20,10 @@ class Verification::ResidenceController < ApplicationController
private private
def residence_params def residence_params
params.require(:residence).permit(:document_number, :document_type, :date_of_birth, :postal_code, :terms_of_service) params.require(:residence).permit(allowed_params)
end
def allowed_params
[:document_number, :document_type, :date_of_birth, :postal_code, :terms_of_service]
end end
end end

View File

@@ -44,7 +44,11 @@ class Verification::SmsController < ApplicationController
private private
def sms_params def sms_params
params.require(:sms).permit(:phone, :confirmation_code) params.require(:sms).permit(allowed_params)
end
def allowed_params
[:phone, :confirmation_code]
end end
def set_phone def set_phone