Commit Graph

10116 Commits

Author SHA1 Message Date
luisramos0
c0bf09131f Make order.pending_payments include payments in pending state so that these payments (pending is the state after authorization for credit cards) are also processed as part of the normal order workflow 2020-03-02 17:30:12 +00:00
luisramos0
19042e0d37 Make checkout controller able to receive a redirect from stripe with a payment_intent as parameter 2020-03-02 17:30:12 +00:00
luisramos0
4b3b4e00ff Add authorize action to the stripe_sca gateway and make it fetch the redirect url if provided
Change the purchase action to only capture the alrteady authorized payment intent
2020-03-02 17:30:12 +00:00
luisramos0
e3ffe8fe6b Add Checkout Stripe redirect logic to get users redirected to stripe authentication pages provided by the stripe API 2020-03-02 17:30:12 +00:00
luisramos0
d91578ab80 Rename checkout payment redirect to checkout paypal redirect 2020-03-02 17:30:12 +00:00
luisramos0
873dcc373f Small refactoring to make next commit easier 2020-03-02 17:30:12 +00:00
luisramos0
1289c3f1a2 Fix rubocop issues in credit_cards_controller 2020-03-02 17:29:30 +00:00
Luis Ramos
c37218fdc5 Merge pull request #4719 from luisramos0/stripe_card_to_pm
Make StripeSCA payment method work with existing credit cards (the ones saved through the Stripe Charges API)
2020-03-02 17:22:07 +00:00
Luis Ramos
dad21a52b2 Merge pull request #4672 from luisramos0/stripe_sca_method
Add new Stripe payment method compatible with the new Stripe Payment Intents API
2020-03-02 17:19:05 +00:00
Pau Pérez Fabregat
97a65d760f Merge pull request #4527 from luisramos0/subs_logs
Improve Subscriptions logging
2020-03-02 15:48:45 +01:00
Eduardo
64d83bfc4d fix ampersand problem using ng-bind-html 2020-03-01 17:54:36 -03:00
Matt-Yorkley
a0999f5d58 Check #persisted? before calling #touch
Rails 4 now throws a fatal error if calling #touch on an object that hasn't been saved yet: c63cfc8722/activerecord/lib/active_record/persistence.rb (L957)

Fixes:

  41) Stock::Package#shipping_methods does not return shipping methods not used by the package's order distributor
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:44:in `block (3 levels) in <module:Stock>'

  42) Stock::Package#shipping_categories returns shipping categories that are not shipping categories of the order's products
      Failure/Error: distributors.each(&:touch)

      ActiveRecord::ActiveRecordError:
        can not touch on a new record object
      # ./app/models/spree/shipping_method_decorator.rb:81:in `touch_distributors'
      # ./spec/models/stock/package_spec.rb:39:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:17:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:32:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:7:in `block (2 levels) in <module:Stock>'
      # ./spec/models/stock/package_spec.rb:50:in `block (3 levels) in <module:Stock>'
2020-03-01 18:40:15 +01:00
Matt-Yorkley
847a349a6b Fix geocoding in Rails 4 🎉
Responsibility for geocoding has moved from the `gmaps4rails` gem using `acts_as_taggable`, to the `geocoding` gem using `geocoded_by`. We already use this in the Address model.
2020-02-29 13:08:06 +01:00
Matt-Yorkley
5c526bf5cc Move definitions into constants and use #freeze 2020-02-28 13:08:17 +01:00
Matt-Yorkley
a9e6622639 Update product import #assign_attributes calls
For some reason some of the superfluous attributes being assigned here have started throwing fatal errors in Rails 4 instead of being silently ignored...
2020-02-28 13:08:17 +01:00
Matt-Yorkley
eef1574ebe Call #permit on params object in before_filter 2020-02-28 12:18:53 +01:00
Matt-Yorkley
78e430613f Fix spree routes helper in payment_redirect.rb 2020-02-28 12:18:53 +01:00
Luis Ramos
427d3b7641 Revert "Comment spree_paypal express in all.js temporarily"
This reverts commit 26ba37b117.
2020-02-28 12:18:53 +01:00
Luis Ramos
61439a3750 Re-add paypal controller code 2020-02-28 12:18:53 +01:00
Matt-Yorkley
cc1ab1bdb9 Fix issue with broken SQL fragments in scopes and nested subqueries
It looks like there are some issues with prepared statements here, where the resulting SQL contains something like: `WHERE "enterprise_roles"."user_id" = $1` in a subquery. The "$1" part is being lost somehow and isn't present if it's used in nested subqueries.

Example fixed spec (there are lots like this one):

  59) Spree::Admin::ReportsController Supplier Bulk Coop where I have granted P-OC to the distributor only shows product line items that I am supplying
      Failure/Error: produced_line_items.select("spree_line_items.id"))

      ActiveRecord::StatementInvalid:
        PG::ProtocolViolation: ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
        : SELECT id FROM "spree_line_items"  WHERE "spree_line_items"."order_id" IN (SELECT id FROM "spree_orders"  WHERE (("spree_orders"."distributor_id" IN (SELECT enterprises.id FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprise_roles"."enterprise_id" = "enterprises"."id" WHERE (enterprise_roles.user_id = 947)) OR "spree_orders"."order_cycle_id" IN (SELECT id FROM "order_cycles"  WHERE "order_cycles"."coordinator_id" IN (SELECT "enterprises"."id" FROM "enterprises" INNER JOIN "enterprise_roles" ON "enterprises"."id" = "enterprise_roles"."enterprise_id" WHERE "enterprise_roles"."user_id" = $1)))))
      # ./app/services/permissions/order.rb:28:in `visible_line_items'
      # ./lib/open_food_network/reports/line_items.rb:16:in `list'
      # ./lib/open_food_network/bulk_coop_report.rb:54:in `table_items'
      # ./app/controllers/spree/admin/reports_controller.rb:264:in `order_grouper_table'
      # ./app/controllers/spree/admin/reports_controller.rb:101:in `bulk_coop'
      # ./spec/controllers/spree/admin/reports_controller_spec.rb:168:in `block (5 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # PG::ProtocolViolation:
      #   ERROR:  bind message supplies 0 parameters, but prepared statement "" requires 1
      #   ./app/services/permissions/order.rb:28:in `visible_line_items'
2020-02-28 12:16:55 +01:00
Luis Ramos
95415cddbd Merge pull request #4858 from Matt-Yorkley/3-0-embedded
[Spree 2.1] Fix embedded response headers
2020-02-28 11:12:16 +00:00
Pau Pérez Fabregat
9440363a22 Merge pull request #4821 from luisramos0/3_val_issues
[Spree 2.1] Fix creation of enterprises/users in specs
2020-02-28 11:34:27 +01:00
Pau Pérez Fabregat
19dd5d0af3 Merge pull request #4855 from luisramos0/3-0-ship-method-services
[Spree 2.1] Fix ShippingMethod.services query
2020-02-28 11:31:53 +01:00
Luis Ramos
bf47d34434 Merge branch 'master' into 3-0-merge-master 2020-02-28 09:52:01 +00:00
Pau Pérez Fabregat
d03d1c0cc2 Merge pull request #4832 from Matt-Yorkley/3-0-more_strong_params
[Spree 2.1] Add strong_params to admin/enterprise_relationships_controller.rb
2020-02-28 10:41:05 +01:00
Pau Pérez Fabregat
6854301025 Merge pull request #4828 from Matt-Yorkley/3-0-strong_params
[Spree 2.1] Strong params
2020-02-28 10:40:52 +01:00
Matt-Yorkley
7124c6bb73 Fix embedded response headers
Rails 4 adds an extra layer of "default" headers that override any that are missing (or deleted). This was breaking embedded shopfront responses.

Fixes:

  74) setting response headers for embedded shopfronts with embedded shopfronts enabled with a valid whitelist allows iframes on certain pages when enabled in configuration
      Failure/Error: expect(response.headers['X-Frame-Options']).to be_nil

        expected: nil
             got: "SAMEORIGIN"
      # ./spec/requests/embedded_shopfronts_headers_spec.rb:54:in `block (4 levels) in <top (required)>'

  75) setting response headers for embedded shopfronts with embedded shopfronts enabled with www prefix matches the URL structure in the header
      Failure/Error: expect(response.headers['X-Frame-Options']).to be_nil

        expected: nil
             got: "SAMEORIGIN"
      # ./spec/requests/embedded_shopfronts_headers_spec.rb:75:in `block (4 levels) in <top (required)>'
2020-02-27 20:53:09 +01:00
Luis Ramos
bd0245229b Move enterprise logo and promo_image setting in factories to after creation fixes a problem with enterprise_roles in the enterprise validation 2020-02-27 18:32:56 +00:00
Matt-Yorkley
38215c2a88 Delete some dead code
This feature for assigning defaults via the UI was previously removed
2020-02-27 19:28:25 +01:00
Luis Ramos
ade52dd07d Make ship methods services query work with rails 4, bool_or now results in a boolean and not in t or f as before 2020-02-27 17:40:32 +00:00
Eduardo
4c3916a93d redirect to shops list when an enterprise is not found 2020-02-26 19:25:38 -03:00
Luis Ramos
677f31ffa8 Make payment source_views/gateway work with nil credit card
This will happen if user deletes a saved credit card used previously. In this case, the admin payment details page will render empty details and the payment amount
2020-02-26 11:55:17 +00:00
Luis Ramos
5848a46149 Add missing template to render stripeSCA payment and add spec to verify it's presence 2020-02-26 11:38:42 +00:00
Luis Ramos
03c91dfac1 Merge pull request #4780 from luisramos0/bulk_prod_errors
Fix javascript logic that parses server errors in the bulk product edit page
2020-02-25 18:49:54 +00:00
Pau Pérez Fabregat
a396a7f0af Merge pull request #4818 from luisramos0/delete_dead_code
Delete dead code after PRs 4512 and 4508
2020-02-25 13:32:23 +01:00
Luis Ramos
6b6cdf07fb Remove inactive confirm
The new version of jquery is picking up a confirm in the ship action that was not being triggered in the previous version

The orders_spec was not expecting this confirm to appear so we are removing here to keep the behaviour and the spec green
2020-02-25 11:56:23 +00:00
Maikel Linke
8432dab142 Remove unused Javascript manifest
It reduces compilation from 25s to 24s.
2020-02-25 11:43:53 +11:00
Maikel Linke
0b0263a605 Remove unused stylesheet manifest
Compiling assets with application.css: 40s
Compiling assets without application.css: 25s
2020-02-25 11:43:39 +11:00
Maikel Linke
17ea2cd510 Clean up JS assets comments 2020-02-24 11:22:47 +11:00
Maikel Linke
325c427219 Remove style from pasted HTML in editor 2020-02-24 11:22:47 +11:00
Maikel Linke
a3e87d893a Remove obsolete angular-sanitize
Our TextAngular module supplies that code.
2020-02-24 11:22:47 +11:00
Luis Ramos
03fac6f285 Avoid subquery with too many columns error by specifying the selected column 2020-02-23 20:05:13 +00:00
Matt-Yorkley
90d1a5e605 Add strong params to admin/column_preferences_controller.rb
Fixes failures such as:

  119) Admin::ColumnPreferencesController bulk_update json where I don't own the preferences submitted prevents me from updating the column preferences
       Failure/Error: raise ActiveModel::ForbiddenAttributesError, params.to_s

       ActiveModel::ForbiddenAttributesError:
         {"action_name"=>"enterprises_index", "column_preferences"=>[{"id"=>1, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"name", "visible"=>false}, {"id"=>nil, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"producer", "visible"=>true}, {"id"=>nil, "user_id"=>2716, "action_name"=>"enterprises_index", "column_name"=>"status", "visible"=>true}], "format"=>"json", "controller"=>"admin/column_preferences", "action"=>"bulk_update"}
       # ./app/controllers/application_controller.rb:16:in `print_params'
       # ./spec/controllers/admin/column_preferences_controller_spec.rb:28:in `block (5 levels) in <top (required)>'
       # ------------------
       # --- Caused by: ---
       # ActiveModel::ForbiddenAttributesError:
       #   ActiveModel::ForbiddenAttributesError
       #   ./app/models/model_set.rb:24:in `block in collection_attributes='
2020-02-23 14:52:06 +01:00
Matt-Yorkley
fccc8037f0 Add strong_params to enterprise_relationships_controller.rb
Fixes specs such as:

  31)
  As an Administrator
  I want to manage relationships between enterprises
 as a site administrator creating a relationship
      Failure/Error: raise ActiveModel::ForbiddenAttributesError, params.to_s

      ActiveModel::ForbiddenAttributesError:
        {"enterprise_relationship"=>{"parent_id"=>284, "child_id"=>285, "permissions_list"=>["add_to_order_cycle", "edit_profile", "create_variant_overrides"]}, "action"=>"create", "controller"=>"admin/enterprise_relationships"}
      # ./app/controllers/application_controller.rb:16:in `print_params'
      # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
      # ------------------
      # --- Caused by: ---
      # ActiveModel::ForbiddenAttributesError:
      #   ActiveModel::ForbiddenAttributesError
      #   ./app/controllers/admin/enterprise_relationships_controller.rb:10:in `create'
2020-02-23 14:26:14 +01:00
Matt-Yorkley
f77194875c Add strong parameters to orders_controller.rb 2020-02-22 16:24:30 +01:00
Matt-Yorkley
bd6b409708 Add strong parameters to user_registrations_controller.rb 2020-02-22 16:24:30 +01:00
Matt-Yorkley
eae7dc7f2e Temporarily add extra debugging to help with strong parameters 2020-02-22 16:24:28 +01:00
Matt-Yorkley
f5bc120fb1 Remove without_protection: true argument from #create calls
Needed for using Strong Parameters in Rails 4
2020-02-22 14:35:10 +01:00
Matt-Yorkley
3896644a04 Remove attr_accessible declarations
Needed for using Strong Parameters in Rails 4
2020-02-22 14:03:16 +01:00
Luis Ramos
1dc7b5793c Fix Enterprise validation and factory so that users are added after the validation 2020-02-22 12:06:33 +00:00