Module: MCP::Rails::Parameters
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/controllers/concerns/mcp/rails/parameters.rb
Defined Under Namespace
Classes: ParamsBuilder
Class Method Summary collapse
Instance Method Summary collapse
- #mcp_invocation? ⇒ Boolean
-
#resource_params ⇒ Object
Instance method to get strong parameters, keeping controller clean.
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/controllers/concerns/mcp/rails/parameters.rb', line 4 def self.included(base) base.extend ClassMethods base.class_eval do # Initialize instance variables for each class @shared_params_defs = {} @action_params_defs = {} # Define class-level accessors def self.shared_params_defs @shared_params_defs ||= {} end def self.action_params_defs @action_params_defs ||= {} end # Optionally, define setters if needed def self.shared_params_defs=(value) @shared_params_defs = value end def self.action_params_defs=(value) @action_params_defs = value end # Ensure subclasses get their own fresh instances def self.inherited(subclass) super subclass.instance_variable_set(:@shared_params_defs, {}) subclass.instance_variable_set(:@action_params_defs, {}) end end def mcp_invocation? bypass_key = request.headers["X-Bypass-CSRF"] stored_key = File.read(MCP::Rails.configuration.bypass_key_path).strip rescue nil bypass_key.present? && bypass_key == stored_key end end |
Instance Method Details
#mcp_invocation? ⇒ Boolean
37 38 39 40 41 |
# File 'app/controllers/concerns/mcp/rails/parameters.rb', line 37 def mcp_invocation? bypass_key = request.headers["X-Bypass-CSRF"] stored_key = File.read(MCP::Rails.configuration.bypass_key_path).strip rescue nil bypass_key.present? && bypass_key == stored_key end |
#resource_params ⇒ Object
Instance method to get strong parameters, keeping controller clean
99 100 101 102 103 104 105 106 |
# File 'app/controllers/concerns/mcp/rails/parameters.rb', line 99 def resource_params permitted = extract_permitted_keys(self.class.permitted_params(action_name)) if (model_hash = permitted.select { |p| p.is_a?(Hash) }) && model_hash.length == 1 params.require(model_hash.first.keys.first).permit(*model_hash.first.values) else params.permit(permitted) end end |