Project

General

Profile

Actions

Refactor #18214

closed

Accept `params` as either ActionController::Parameters or Hash

Added by Dominic Cleal about 7 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
Rails
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

A few places in the codebase check the type of argument with is_a?(Hash) when accepting input from either params (via a controller) or manually constructed hashes, e.g.

  • Foreman::AccessControl.permissions_for_controller_action
  • ReportImporter#initialize
  • Role#allowed_to?
  • User#allowed_to?

In Rails 4.2, params is an ActionController::Parameters instance, but it's a subclass of Hash. In Rails 5, it no longer inherits from Hash (https://github.com/rails/rails/commit/14a3bd5) and so checks for is_a?(Hash) return false. The checks should permit either, as both plain hashes and params are passed around in Foreman.

Actions #1

Updated by The Foreman Bot about 7 years ago

  • Status changed from Assigned to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/4221 added
Actions #2

Updated by Dominic Cleal about 7 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100
Actions #3

Updated by Dominic Cleal about 7 years ago

  • translation missing: en.field_release set to 209
Actions

Also available in: Atom PDF