Sha256: 1d27100a62074815cf837b519be865e1ee42a1ab1e846d6f58cd08da29c5f60f

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module ShopifyApp
  module SanitizedParams
    protected

    def sanitized_shop_name
      @sanitized_shop_name ||= sanitize_shop_param(params)
    end

    def referer_sanitized_shop_name
      return unless request.referer.present?

      @referer_sanitized_shop_name ||= begin
        referer_uri = URI(request.referer)
        query_params = Rack::Utils.parse_query(referer_uri.query)

        sanitize_shop_param(query_params.with_indifferent_access)
      end
    end

    def sanitize_shop_param(params)
      return unless params[:shop].present?

      ShopifyApp::Utils.sanitize_shop_domain(params[:shop])
    end

    def sanitized_params
      parameters = request.post? ? request.request_parameters : request.query_parameters
      parameters.clone.tap do |params_copy|
        if params[:shop].is_a?(String)
          params_copy[:shop] = sanitize_shop_param(params)
        end
      end
    end

    def embedded?
      params[:embedded] == "1" || request.env["HTTP_SEC_FETCH_DEST"] == "iframe"
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shopify_app-22.5.1 lib/shopify_app/controller_concerns/sanitized_params.rb
shopify_app-22.5.0 lib/shopify_app/controller_concerns/sanitized_params.rb
shopify_app-22.4.0 lib/shopify_app/controller_concerns/sanitized_params.rb
shopify_app-22.3.1 lib/shopify_app/controller_concerns/sanitized_params.rb