solidus_core 2.10.1 → 2.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +31 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/mailers/spree/base_mailer.rb +4 -0
  5. data/app/mailers/spree/order_mailer.rb +1 -1
  6. data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
  7. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
  8. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  9. data/app/models/concerns/spree/default_price.rb +1 -1
  10. data/app/models/concerns/spree/soft_deletable.rb +18 -0
  11. data/app/models/concerns/spree/user_address_book.rb +86 -32
  12. data/app/models/concerns/spree/user_methods.rb +3 -2
  13. data/app/models/spree/ability.rb +34 -10
  14. data/app/models/spree/address.rb +94 -17
  15. data/app/models/spree/address/name.rb +49 -0
  16. data/app/models/spree/address/state_validator.rb +71 -0
  17. data/app/models/spree/adjustment.rb +1 -1
  18. data/app/models/spree/base.rb +1 -0
  19. data/app/models/spree/calculator/default_tax.rb +1 -1
  20. data/app/models/spree/calculator/percent_per_item.rb +4 -4
  21. data/app/models/spree/calculator/price_sack.rb +1 -1
  22. data/app/models/spree/credit_card.rb +2 -2
  23. data/app/models/spree/customer_return.rb +4 -2
  24. data/app/models/spree/exchange.rb +1 -1
  25. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  26. data/app/models/spree/inventory_unit.rb +1 -1
  27. data/app/models/spree/line_item.rb +13 -4
  28. data/app/models/spree/option_type.rb +1 -1
  29. data/app/models/spree/option_value.rb +2 -2
  30. data/app/models/spree/order.rb +91 -20
  31. data/app/models/spree/order/checkout.rb +1 -0
  32. data/app/models/spree/order_inventory.rb +16 -4
  33. data/app/models/spree/order_merger.rb +6 -4
  34. data/app/models/spree/order_promotion.rb +1 -1
  35. data/app/models/spree/order_updater.rb +11 -10
  36. data/app/models/spree/payment.rb +3 -3
  37. data/app/models/spree/payment/cancellation.rb +3 -3
  38. data/app/models/spree/payment/processing.rb +54 -30
  39. data/app/models/spree/payment_method.rb +8 -9
  40. data/app/models/spree/preference.rb +1 -1
  41. data/app/models/spree/price.rb +2 -8
  42. data/app/models/spree/product.rb +19 -14
  43. data/app/models/spree/product/scopes.rb +9 -4
  44. data/app/models/spree/promotion.rb +18 -7
  45. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  46. data/app/models/spree/promotion_action.rb +1 -7
  47. data/app/models/spree/promotion_code.rb +6 -1
  48. data/app/models/spree/promotion_code_batch.rb +1 -1
  49. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  50. data/app/models/spree/promotion_rule.rb +1 -1
  51. data/app/models/spree/promotion_rule_role.rb +1 -1
  52. data/app/models/spree/refund.rb +60 -12
  53. data/app/models/spree/reimbursement.rb +27 -0
  54. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  55. data/app/models/spree/return_authorization.rb +1 -1
  56. data/app/models/spree/return_item.rb +21 -10
  57. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  58. data/app/models/spree/role.rb +1 -1
  59. data/app/models/spree/shipment.rb +2 -2
  60. data/app/models/spree/shipping_calculator.rb +1 -1
  61. data/app/models/spree/shipping_manifest.rb +2 -2
  62. data/app/models/spree/shipping_method.rb +2 -9
  63. data/app/models/spree/shipping_rate.rb +1 -1
  64. data/app/models/spree/shipping_rate_tax.rb +1 -1
  65. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  66. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  67. data/app/models/spree/stock/package.rb +1 -1
  68. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  69. data/app/models/spree/stock_item.rb +2 -8
  70. data/app/models/spree/stock_movement.rb +2 -0
  71. data/app/models/spree/store.rb +1 -1
  72. data/app/models/spree/store_credit.rb +1 -7
  73. data/app/models/spree/store_credit_category.rb +30 -3
  74. data/app/models/spree/store_credit_event.rb +1 -7
  75. data/app/models/spree/store_credit_reason.rb +0 -4
  76. data/app/models/spree/tax/tax_helpers.rb +1 -1
  77. data/app/models/spree/tax_category.rb +2 -8
  78. data/app/models/spree/tax_rate.rb +7 -7
  79. data/app/models/spree/taxon.rb +1 -1
  80. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  81. data/app/models/spree/user_address.rb +8 -2
  82. data/app/models/spree/variant.rb +7 -13
  83. data/app/models/spree/variant_property_rule.rb +5 -1
  84. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  85. data/app/models/spree/zone.rb +1 -1
  86. data/config/locales/en.yml +44 -5
  87. data/db/default/spree/countries.rb +1 -1
  88. data/db/default/spree/states.rb +12 -4
  89. data/db/default/spree/store_credit.rb +2 -2
  90. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  91. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  92. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  93. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  94. data/lib/generators/solidus/install/install_generator.rb +253 -0
  95. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  96. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  97. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  98. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  99. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  100. data/lib/generators/spree/install/install_generator.rb +7 -189
  101. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  102. data/lib/spree/app_configuration.rb +117 -51
  103. data/lib/spree/awesome_nested_set_override.rb +44 -0
  104. data/lib/spree/core.rb +5 -11
  105. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  106. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  107. data/lib/spree/core/controller_helpers/order.rb +8 -7
  108. data/lib/spree/core/controller_helpers/strong_parameters.rb +21 -7
  109. data/lib/spree/core/engine.rb +39 -2
  110. data/lib/spree/core/importer/order.rb +26 -11
  111. data/lib/spree/core/permalinks.rb +1 -3
  112. data/lib/spree/core/product_filters.rb +6 -5
  113. data/lib/spree/core/state_machines.rb +20 -1
  114. data/lib/spree/core/state_machines/order.rb +249 -0
  115. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  116. data/lib/spree/core/version.rb +1 -1
  117. data/lib/spree/encryptor.rb +25 -0
  118. data/lib/spree/event.rb +40 -7
  119. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  120. data/lib/spree/event/configuration.rb +11 -6
  121. data/lib/spree/event/subscriber.rb +38 -18
  122. data/lib/spree/event/subscriber_registry.rb +92 -0
  123. data/lib/spree/i18n.rb +1 -1
  124. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  125. data/lib/spree/paranoia_deprecations.rb +32 -12
  126. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  127. data/lib/spree/permission_sets/default_customer.rb +16 -16
  128. data/lib/spree/permission_sets/order_display.rb +11 -11
  129. data/lib/spree/permission_sets/order_management.rb +1 -1
  130. data/lib/spree/permission_sets/product_display.rb +9 -9
  131. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  132. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  133. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  134. data/lib/spree/permission_sets/stock_display.rb +2 -2
  135. data/lib/spree/permission_sets/stock_management.rb +1 -1
  136. data/lib/spree/permission_sets/user_display.rb +3 -3
  137. data/lib/spree/permission_sets/user_management.rb +4 -3
  138. data/lib/spree/permitted_attributes.rb +79 -9
  139. data/lib/spree/preferences/preferable.rb +4 -3
  140. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  141. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  142. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  143. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  144. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  145. data/lib/spree/testing_support/common_rake.rb +3 -3
  146. data/lib/spree/testing_support/dummy_app.rb +44 -23
  147. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  148. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  149. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  150. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  151. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  152. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  153. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  154. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  155. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  156. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  157. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  158. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  159. data/lib/spree/testing_support/factories/user_factory.rb +4 -1
  160. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  161. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  162. data/lib/spree/testing_support/job_helpers.rb +24 -0
  163. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  164. data/lib/spree/testing_support/preferences.rb +3 -1
  165. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  166. data/lib/spree/testing_support/translations.rb +25 -0
  167. data/solidus_core.gemspec +8 -5
  168. metadata +99 -376
  169. data/script/rails +0 -10
  170. data/spec/fixtures/thinking-cat.jpg +0 -0
  171. data/spec/helpers/base_helper_spec.rb +0 -168
  172. data/spec/helpers/products_helper_spec.rb +0 -202
  173. data/spec/helpers/taxons_helper_spec.rb +0 -43
  174. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  175. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  176. data/spec/lib/i18n_spec.rb +0 -97
  177. data/spec/lib/search/base_spec.rb +0 -91
  178. data/spec/lib/search/variant_spec.rb +0 -115
  179. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  180. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  181. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  182. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  183. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  184. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  185. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  186. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  187. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -41
  188. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  189. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  190. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  191. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  192. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  193. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  194. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  195. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  197. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  201. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  204. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  205. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  207. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  209. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  210. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  212. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  217. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  219. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  224. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  226. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  228. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  229. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  230. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  231. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  232. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  233. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  237. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  240. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  244. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  246. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  247. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  248. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  249. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  250. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  251. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  252. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  253. data/spec/lib/spree/core/version_spec.rb +0 -19
  254. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  255. data/spec/lib/spree/event_spec.rb +0 -130
  256. data/spec/lib/spree/localized_number_spec.rb +0 -45
  257. data/spec/lib/spree/migrations_spec.rb +0 -32
  258. data/spec/lib/spree/money_spec.rb +0 -298
  259. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  260. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  261. data/spec/lib/tasks/dummy_task.rake +0 -12
  262. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  263. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  264. data/spec/mailers/carton_mailer_spec.rb +0 -44
  265. data/spec/mailers/order_mailer_spec.rb +0 -117
  266. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  267. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  268. data/spec/mailers/test_mailer_spec.rb +0 -13
  269. data/spec/models/spree/ability_spec.rb +0 -279
  270. data/spec/models/spree/address_spec.rb +0 -399
  271. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  272. data/spec/models/spree/adjustment_spec.rb +0 -339
  273. data/spec/models/spree/asset_spec.rb +0 -25
  274. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  275. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  276. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  277. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  278. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  279. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  280. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  281. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  282. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  283. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  284. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  285. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  286. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  287. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  288. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  289. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  290. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  291. data/spec/models/spree/calculator_spec.rb +0 -43
  292. data/spec/models/spree/carton_spec.rb +0 -145
  293. data/spec/models/spree/classification_spec.rb +0 -126
  294. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  295. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  296. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  297. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  298. data/spec/models/spree/country_spec.rb +0 -154
  299. data/spec/models/spree/credit_card_spec.rb +0 -373
  300. data/spec/models/spree/customer_return_spec.rb +0 -294
  301. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  302. data/spec/models/spree/exchange_spec.rb +0 -76
  303. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  304. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  305. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  306. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  307. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  308. data/spec/models/spree/gateway_spec.rb +0 -14
  309. data/spec/models/spree/image_spec.rb +0 -25
  310. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  311. data/spec/models/spree/line_item_spec.rb +0 -240
  312. data/spec/models/spree/option_type_spec.rb +0 -16
  313. data/spec/models/spree/option_value_spec.rb +0 -52
  314. data/spec/models/spree/order/address_spec.rb +0 -52
  315. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  316. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  317. data/spec/models/spree/order/checkout_spec.rb +0 -740
  318. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  319. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  320. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  321. data/spec/models/spree/order/payment_spec.rb +0 -280
  322. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  323. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  324. data/spec/models/spree/order/totals_spec.rb +0 -26
  325. data/spec/models/spree/order/validations_spec.rb +0 -17
  326. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  327. data/spec/models/spree/order_capturing_spec.rb +0 -16
  328. data/spec/models/spree/order_contents_spec.rb +0 -362
  329. data/spec/models/spree/order_inventory_spec.rb +0 -285
  330. data/spec/models/spree/order_merger_spec.rb +0 -162
  331. data/spec/models/spree/order_mutex_spec.rb +0 -89
  332. data/spec/models/spree/order_promotion_spec.rb +0 -33
  333. data/spec/models/spree/order_shipping_spec.rb +0 -247
  334. data/spec/models/spree/order_spec.rb +0 -1687
  335. data/spec/models/spree/order_taxation_spec.rb +0 -128
  336. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  337. data/spec/models/spree/order_updater_spec.rb +0 -556
  338. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  339. data/spec/models/spree/payment_create_spec.rb +0 -195
  340. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  341. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  342. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  343. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  344. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  345. data/spec/models/spree/payment_method_spec.rb +0 -408
  346. data/spec/models/spree/payment_spec.rb +0 -1270
  347. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  348. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  349. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  350. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  351. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  352. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  353. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  354. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  355. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  356. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  357. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  358. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  359. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  360. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  361. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  362. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  363. data/spec/models/spree/preference_spec.rb +0 -79
  364. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  365. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  366. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  367. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  368. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  369. data/spec/models/spree/preferences/store_spec.rb +0 -40
  370. data/spec/models/spree/price_spec.rb +0 -150
  371. data/spec/models/spree/product/scopes_spec.rb +0 -164
  372. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  373. data/spec/models/spree/product_filter_spec.rb +0 -28
  374. data/spec/models/spree/product_property_spec.rb +0 -20
  375. data/spec/models/spree/product_spec.rb +0 -584
  376. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  377. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  378. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  379. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  380. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  381. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  382. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  383. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  384. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  385. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  386. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  387. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  388. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -226
  389. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  390. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  391. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  392. data/spec/models/spree/promotion_action_spec.rb +0 -44
  393. data/spec/models/spree/promotion_category_spec.rb +0 -19
  394. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  395. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  396. data/spec/models/spree/promotion_code_spec.rb +0 -206
  397. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  398. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  399. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  400. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  401. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  402. data/spec/models/spree/promotion_spec.rb +0 -945
  403. data/spec/models/spree/refund_spec.rb +0 -200
  404. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  405. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  406. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  407. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  408. data/spec/models/spree/reimbursement_spec.rb +0 -278
  409. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  410. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  411. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  412. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  413. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  414. data/spec/models/spree/return_authorization_spec.rb +0 -226
  415. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  416. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  417. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  418. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  419. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  420. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  421. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  422. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  423. data/spec/models/spree/return_item_spec.rb +0 -785
  424. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  425. data/spec/models/spree/shipment_spec.rb +0 -914
  426. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  427. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  428. data/spec/models/spree/shipping_method_spec.rb +0 -292
  429. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  430. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  431. data/spec/models/spree/state_spec.rb +0 -43
  432. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  433. data/spec/models/spree/stock/availability_spec.rb +0 -143
  434. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  435. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  436. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  437. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  438. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  439. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  440. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  441. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  442. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  443. data/spec/models/spree/stock/package_spec.rb +0 -182
  444. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  445. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  446. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  447. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  448. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  449. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  450. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  451. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  452. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  453. data/spec/models/spree/stock_item_spec.rb +0 -348
  454. data/spec/models/spree/stock_location_spec.rb +0 -288
  455. data/spec/models/spree/stock_movement_spec.rb +0 -58
  456. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  457. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  458. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  459. data/spec/models/spree/store_credit_spec.rb +0 -900
  460. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  461. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  462. data/spec/models/spree/store_spec.rb +0 -156
  463. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  464. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  465. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  466. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  467. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  468. data/spec/models/spree/tax_category_spec.rb +0 -50
  469. data/spec/models/spree/tax_rate_spec.rb +0 -317
  470. data/spec/models/spree/taxon_spec.rb +0 -197
  471. data/spec/models/spree/taxonomy_spec.rb +0 -15
  472. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  473. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  474. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  475. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  476. data/spec/models/spree/user_spec.rb +0 -247
  477. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  478. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  479. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  480. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  481. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  482. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  483. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  484. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  485. data/spec/models/spree/variant_spec.rb +0 -862
  486. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  487. data/spec/models/spree/wallet_spec.rb +0 -155
  488. data/spec/models/spree/zone_spec.rb +0 -248
  489. data/spec/rails_helper.rb +0 -46
  490. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  491. data/spec/spec_helper.rb +0 -36
  492. data/spec/support/big_decimal.rb +0 -7
  493. data/spec/support/concerns/default_price.rb +0 -44
  494. data/spec/support/concerns/payment_source.rb +0 -66
  495. data/spec/support/concerns/working_factories.rb +0 -15
  496. data/spec/support/dummy_ability.rb +0 -7
@@ -5,20 +5,20 @@ module Spree
5
5
  class ConfigurationDisplay < PermissionSets::Base
6
6
  def activate!
7
7
  can [:edit, :admin], :general_settings
8
- can [:display, :admin], Spree::TaxCategory
9
- can [:display, :admin], Spree::TaxRate
10
- can [:display, :admin], Spree::Zone
11
- can [:display, :admin], Spree::Country
12
- can [:display, :admin], Spree::State
13
- can [:display, :admin], Spree::PaymentMethod
14
- can [:display, :admin], Spree::Taxonomy
15
- can [:display, :admin], Spree::ShippingMethod
16
- can [:display, :admin], Spree::ShippingCategory
17
- can [:display, :admin], Spree::StockLocation
18
- can [:display, :admin], Spree::StockMovement
19
- can [:display, :admin], Spree::RefundReason
20
- can [:display, :admin], Spree::ReimbursementType
21
- can [:display, :admin], Spree::ReturnReason
8
+ can [:read, :admin], Spree::TaxCategory
9
+ can [:read, :admin], Spree::TaxRate
10
+ can [:read, :admin], Spree::Zone
11
+ can [:read, :admin], Spree::Country
12
+ can [:read, :admin], Spree::State
13
+ can [:read, :admin], Spree::PaymentMethod
14
+ can [:read, :admin], Spree::Taxonomy
15
+ can [:read, :admin], Spree::ShippingMethod
16
+ can [:read, :admin], Spree::ShippingCategory
17
+ can [:read, :admin], Spree::StockLocation
18
+ can [:read, :admin], Spree::StockMovement
19
+ can [:read, :admin], Spree::RefundReason
20
+ can [:read, :admin], Spree::ReimbursementType
21
+ can [:read, :admin], Spree::ReturnReason
22
22
  end
23
23
  end
24
24
  end
@@ -4,11 +4,11 @@ module Spree
4
4
  module PermissionSets
5
5
  class DefaultCustomer < PermissionSets::Base
6
6
  def activate!
7
- can :display, Country
8
- can :display, OptionType
9
- can :display, OptionValue
7
+ can :read, Country
8
+ can :read, OptionType
9
+ can :read, OptionValue
10
10
  can :create, Order
11
- can [:read, :update], Order, Order.where(user: user) do |order, token|
11
+ can [:show, :update], Order, Order.where(user: user) do |order, token|
12
12
  order.user == user || (order.guest_token.present? && token == order.guest_token)
13
13
  end
14
14
  cannot :update, Order do |order|
@@ -17,20 +17,20 @@ module Spree
17
17
  can :create, ReturnAuthorization do |return_authorization|
18
18
  return_authorization.order.user == user
19
19
  end
20
- can [:display, :update], CreditCard, user_id: user.id
21
- can :display, Product
22
- can :display, ProductProperty
23
- can :display, Property
20
+ can [:read, :update], CreditCard, user_id: user.id
21
+ can :read, Product
22
+ can :read, ProductProperty
23
+ can :read, Property
24
24
  can :create, Spree.user_class
25
- can [:read, :update, :update_email], Spree.user_class, id: user.id
26
- can :display, State
27
- can :display, StockItem, stock_location: { active: true }
28
- can :display, StockLocation, active: true
29
- can :display, Taxon
30
- can :display, Taxonomy
25
+ can [:show, :update, :update_email], Spree.user_class, id: user.id
26
+ can :read, State
27
+ can :read, StockItem, stock_location: { active: true }
28
+ can :read, StockLocation, active: true
29
+ can :read, Taxon
30
+ can :read, Taxonomy
31
31
  can [:save_in_address_book, :remove_from_address_book], Spree.user_class, id: user.id
32
- can [:display, :view_out_of_stock], Variant
33
- can :display, Zone
32
+ can [:read, :view_out_of_stock], Variant
33
+ can :read, Zone
34
34
  end
35
35
  end
36
36
  end
@@ -4,17 +4,17 @@ module Spree
4
4
  module PermissionSets
5
5
  class OrderDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin, :edit, :cart], Spree::Order
8
- can [:display, :admin], Spree::Payment
9
- can [:display, :admin], Spree::Shipment
10
- can [:display, :admin], Spree::Adjustment
11
- can [:display, :admin], Spree::LineItem
12
- can [:display, :admin], Spree::ReturnAuthorization
13
- can [:display, :admin], Spree::CustomerReturn
14
- can [:display, :admin], Spree::OrderCancellations
15
- can [:display, :admin], Spree::Reimbursement
16
- can [:display, :admin], Spree::ReturnItem
17
- can [:display, :admin], Spree::Refund
7
+ can [:read, :admin, :edit, :cart], Spree::Order
8
+ can [:read, :admin], Spree::Payment
9
+ can [:read, :admin], Spree::Shipment
10
+ can [:read, :admin], Spree::Adjustment
11
+ can [:read, :admin], Spree::LineItem
12
+ can [:read, :admin], Spree::ReturnAuthorization
13
+ can [:read, :admin], Spree::CustomerReturn
14
+ can [:read, :admin], Spree::OrderCancellations
15
+ can [:read, :admin], Spree::Reimbursement
16
+ can [:read, :admin], Spree::ReturnItem
17
+ can [:read, :admin], Spree::Refund
18
18
  end
19
19
  end
20
20
  end
@@ -4,7 +4,7 @@ module Spree
4
4
  module PermissionSets
5
5
  class OrderManagement < PermissionSets::Base
6
6
  def activate!
7
- can :display, Spree::ReimbursementType
7
+ can :read, Spree::ReimbursementType
8
8
  can :manage, Spree::Order
9
9
  can :manage, Spree::Payment
10
10
  can :manage, Spree::Shipment
@@ -4,15 +4,15 @@ module Spree
4
4
  module PermissionSets
5
5
  class ProductDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin, :edit], Spree::Product
8
- can [:display, :admin], Spree::Image
9
- can [:display, :admin], Spree::Variant
10
- can [:display, :admin], Spree::OptionValue
11
- can [:display, :admin], Spree::ProductProperty
12
- can [:display, :admin], Spree::OptionType
13
- can [:display, :admin], Spree::Property
14
- can [:display, :admin], Spree::Taxonomy
15
- can [:display, :admin], Spree::Taxon
7
+ can [:read, :admin, :edit], Spree::Product
8
+ can [:read, :admin], Spree::Image
9
+ can [:read, :admin], Spree::Variant
10
+ can [:read, :admin], Spree::OptionValue
11
+ can [:read, :admin], Spree::ProductProperty
12
+ can [:read, :admin], Spree::OptionType
13
+ can [:read, :admin], Spree::Property
14
+ can [:read, :admin], Spree::Taxonomy
15
+ can [:read, :admin], Spree::Taxon
16
16
  end
17
17
  end
18
18
  end
@@ -4,11 +4,11 @@ module Spree
4
4
  module PermissionSets
5
5
  class PromotionDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin, :edit], Spree::Promotion
8
- can [:display, :admin], Spree::PromotionRule
9
- can [:display, :admin], Spree::PromotionAction
10
- can [:display, :admin], Spree::PromotionCategory
11
- can [:display, :admin], Spree::PromotionCode
7
+ can [:read, :admin, :edit], Spree::Promotion
8
+ can [:read, :admin], Spree::PromotionRule
9
+ can [:read, :admin], Spree::PromotionAction
10
+ can [:read, :admin], Spree::PromotionCategory
11
+ can [:read, :admin], Spree::PromotionCode
12
12
  end
13
13
  end
14
14
  end
@@ -4,8 +4,8 @@ module Spree
4
4
  module PermissionSets
5
5
  class RestrictedStockDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin], Spree::StockItem, stock_location_id: location_ids
8
- can :display, Spree::StockLocation, id: location_ids
7
+ can [:read, :admin], Spree::StockItem, stock_location_id: location_ids
8
+ can :read, Spree::StockLocation, id: location_ids
9
9
  end
10
10
 
11
11
  private
@@ -5,7 +5,7 @@ module Spree
5
5
  class RestrictedStockManagement < PermissionSets::Base
6
6
  def activate!
7
7
  can :manage, Spree::StockItem, stock_location_id: location_ids
8
- can :display, Spree::StockLocation, id: location_ids
8
+ can :read, Spree::StockLocation, id: location_ids
9
9
  end
10
10
 
11
11
  private
@@ -4,8 +4,8 @@ module Spree
4
4
  module PermissionSets
5
5
  class StockDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin], Spree::StockItem
8
- can :display, Spree::StockLocation
7
+ can [:read, :admin], Spree::StockItem
8
+ can :read, Spree::StockLocation
9
9
  end
10
10
  end
11
11
  end
@@ -5,7 +5,7 @@ module Spree
5
5
  class StockManagement < PermissionSets::Base
6
6
  def activate!
7
7
  can :manage, Spree::StockItem
8
- can :display, Spree::StockLocation
8
+ can :read, Spree::StockLocation
9
9
  end
10
10
  end
11
11
  end
@@ -4,9 +4,9 @@ module Spree
4
4
  module PermissionSets
5
5
  class UserDisplay < PermissionSets::Base
6
6
  def activate!
7
- can [:display, :admin, :edit, :addresses, :orders, :items], Spree.user_class
8
- can [:display, :admin], Spree::StoreCredit
9
- can :display, Spree::Role
7
+ can [:read, :admin, :edit, :addresses, :orders, :items], Spree.user_class
8
+ can [:read, :admin], Spree::StoreCredit
9
+ can :read, Spree::Role
10
10
  end
11
11
  end
12
12
  end
@@ -4,7 +4,7 @@ module Spree
4
4
  module PermissionSets
5
5
  class UserManagement < PermissionSets::Base
6
6
  def activate!
7
- can [:admin, :display, :create, :update, :save_in_address_book, :remove_from_address_book, :addresses, :orders, :items], Spree.user_class
7
+ can [:admin, :read, :create, :update, :save_in_address_book, :remove_from_address_book, :addresses, :orders, :items], Spree.user_class
8
8
 
9
9
  # Note: This does not work with accessible_by.
10
10
  # See https://github.com/solidusio/solidus/pull/1263
@@ -15,9 +15,10 @@ module Spree
15
15
  user.spree_roles.none?
16
16
  end
17
17
 
18
- cannot [:delete, :destroy], Spree.user_class
18
+ cannot :destroy, Spree.user_class
19
19
  can :manage, Spree::StoreCredit
20
- can :display, Spree::Role
20
+ can :manage, :api_key
21
+ can :read, Spree::Role
21
22
  end
22
23
  end
23
24
  end
@@ -8,7 +8,10 @@ module Spree
8
8
  ATTRIBUTES = [
9
9
  :address_attributes,
10
10
  :address_book_attributes,
11
- :checkout_attributes,
11
+ :checkout_address_attributes,
12
+ :checkout_delivery_attributes,
13
+ :checkout_payment_attributes,
14
+ :checkout_confirm_attributes,
12
15
  :credit_card_update_attributes,
13
16
  :customer_return_attributes,
14
17
  :image_attributes,
@@ -36,7 +39,7 @@ module Spree
36
39
  mattr_reader(*ATTRIBUTES)
37
40
 
38
41
  @@address_attributes = [
39
- :id, :firstname, :lastname, :first_name, :last_name,
42
+ :id, :name, :firstname, :lastname, :first_name, :last_name,
40
43
  :address1, :address2, :city, :country_id, :state_id,
41
44
  :zipcode, :phone, :state_name, :country_iso, :alternative_phone, :company,
42
45
  country: [:iso, :name, :iso3, :iso_name],
@@ -45,10 +48,6 @@ module Spree
45
48
 
46
49
  @@address_book_attributes = address_attributes + [:default]
47
50
 
48
- @@checkout_attributes = [
49
- :coupon_code, :email, :special_instructions, :use_billing
50
- ]
51
-
52
51
  @@credit_card_update_attributes = [
53
52
  :month, :year, :expiry, :first_name, :last_name, :name
54
53
  ]
@@ -70,7 +69,7 @@ module Spree
70
69
  @@product_properties_attributes = [:property_name, :value, :position]
71
70
 
72
71
  @@product_attributes = [
73
- :name, :description, :available_on, :permalink, :meta_description,
72
+ :name, :description, :available_on, :discontinue_on, :permalink, :meta_description,
74
73
  :meta_keywords, :price, :sku, :deleted_at,
75
74
  :option_values_hash, :weight, :height, :width, :depth,
76
75
  :shipping_category_id, :tax_category_id,
@@ -91,7 +90,7 @@ module Spree
91
90
  :number, :month, :year, :expiry, :verification_value,
92
91
  :first_name, :last_name, :cc_type, :gateway_customer_profile_id,
93
92
  :gateway_payment_profile_id, :last_digits, :name, :encrypted_data,
94
- :existing_card_id, :wallet_payment_source_id
93
+ :existing_card_id, :wallet_payment_source_id, address_attributes: address_attributes
95
94
  ]
96
95
 
97
96
  @@stock_item_attributes = [:variant, :stock_location, :backorderable, :variant_id]
@@ -108,7 +107,8 @@ module Spree
108
107
 
109
108
  @@store_attributes = [:name, :url, :seo_title, :meta_keywords,
110
109
  :meta_description, :default_currency,
111
- :mail_from_address, :cart_tax_country_iso]
110
+ :mail_from_address, :cart_tax_country_iso,
111
+ :bcc_email]
112
112
 
113
113
  @@taxonomy_attributes = [:name]
114
114
 
@@ -129,5 +129,75 @@ module Spree
129
129
  :product_id, :product, :option_values_attributes, :price,
130
130
  :weight, :height, :width, :depth, :sku, :cost_currency, option_value_ids: [], options: [:name, :value]
131
131
  ]
132
+
133
+ @@checkout_address_attributes = [
134
+ :use_billing,
135
+ :email,
136
+ bill_address_attributes: address_attributes,
137
+ ship_address_attributes: address_attributes
138
+ ]
139
+
140
+ @@checkout_delivery_attributes = [
141
+ :special_instructions,
142
+ shipments_attributes: shipment_attributes
143
+ ]
144
+
145
+ @@checkout_payment_attributes = [
146
+ :coupon_code,
147
+ payments_attributes: payment_attributes + [
148
+ source_attributes: source_attributes
149
+ ]
150
+ ]
151
+
152
+ @@checkout_confirm_attributes = []
153
+
154
+ def self.checkout_attributes
155
+ Spree::Deprecation.warn <<-WARN.squish, caller
156
+ checkout_attributes is deprecated, please use the permitted
157
+ attributes set for the specific step that needs to be updated.
158
+
159
+ E.g. permitted_checkout_address_attributes
160
+ WARN
161
+
162
+ CheckoutAdditionalAttributes.new(
163
+ checkout_address_attributes +
164
+ checkout_delivery_attributes +
165
+ checkout_payment_attributes +
166
+ checkout_confirm_attributes
167
+ )
168
+ end
169
+ end
170
+
171
+ class CheckoutAdditionalAttributes < Array
172
+ def <<(*attributes)
173
+ super
174
+
175
+ inject_attributes_to_all_steps(attributes, :<<)
176
+ end
177
+
178
+ def push(*attributes)
179
+ super
180
+
181
+ inject_attributes_to_all_steps(attributes, :push)
182
+ end
183
+ alias append push
184
+
185
+ def prepend(*attributes)
186
+ super
187
+
188
+ inject_attributes_to_all_steps(attributes, :prepend)
189
+ end
190
+ alias unshift prepend
191
+
192
+ private
193
+
194
+ def inject_attributes_to_all_steps(attributes, method)
195
+ attributes.each do |attribute|
196
+ PermittedAttributes.checkout_address_attributes.send(method, attribute)
197
+ PermittedAttributes.checkout_delivery_attributes.send(method, attribute)
198
+ PermittedAttributes.checkout_payment_attributes.send(method, attribute)
199
+ PermittedAttributes.checkout_confirm_attributes.send(method, attribute)
200
+ end
201
+ end
132
202
  end
133
203
  end
@@ -141,11 +141,13 @@ module Spree
141
141
 
142
142
  private
143
143
 
144
- def convert_preference_value(value, type)
144
+ def convert_preference_value(value, type, preference_encryptor = nil)
145
145
  return nil if value.nil?
146
146
  case type
147
147
  when :string, :text
148
148
  value.to_s
149
+ when :encrypted_string
150
+ preference_encryptor.encrypt(value.to_s)
149
151
  when :password
150
152
  value.to_s
151
153
  when :decimal
@@ -158,8 +160,7 @@ module Spree
158
160
  value.to_i
159
161
  when :boolean
160
162
  if !value ||
161
- value == 0 ||
162
- value =~ /\A(f|false|0)\Z/i ||
163
+ value.to_s =~ /\A(f|false|0|^)\Z/i ||
163
164
  (value.respond_to?(:empty?) && value.empty?)
164
165
  false
165
166
  else
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'spree/encryptor'
4
+
3
5
  module Spree::Preferences
4
6
  module PreferableClassMethods
5
7
  DEFAULT_ADMIN_FORM_PREFERENCE_TYPES = %i(
@@ -9,6 +11,7 @@ module Spree::Preferences
9
11
  password
10
12
  string
11
13
  text
14
+ encrypted_string
12
15
  )
13
16
 
14
17
  def defined_preferences
@@ -16,7 +19,13 @@ module Spree::Preferences
16
19
  end
17
20
 
18
21
  def preference(name, type, options = {})
19
- options.assert_valid_keys(:default)
22
+ options.assert_valid_keys(:default, :encryption_key)
23
+
24
+ if type == :encrypted_string
25
+ preference_encryptor = preference_encryptor(options)
26
+ options[:default] = preference_encryptor.encrypt(options[:default])
27
+ end
28
+
20
29
  default = options[:default]
21
30
  default = ->{ options[:default] } unless default.is_a?(Proc)
22
31
 
@@ -34,13 +43,15 @@ module Spree::Preferences
34
43
  # cache_key will be nil for new objects, then if we check if there
35
44
  # is a pending preference before going to default
36
45
  define_method preference_getter_method(name) do
37
- preferences.fetch(name) do
46
+ value = preferences.fetch(name) do
38
47
  default.call
39
48
  end
49
+ value = preference_encryptor.decrypt(value) if preference_encryptor.present?
50
+ value
40
51
  end
41
52
 
42
53
  define_method preference_setter_method(name) do |value|
43
- value = convert_preference_value(value, type)
54
+ value = convert_preference_value(value, type, preference_encryptor)
44
55
  preferences[name] = value
45
56
 
46
57
  # If this is an activerecord object, we need to inform
@@ -72,6 +83,14 @@ module Spree::Preferences
72
83
  "preferred_#{name}_type".to_sym
73
84
  end
74
85
 
86
+ def preference_encryptor(options)
87
+ key = options[:encryption_key] ||
88
+ ENV['SOLIDUS_PREFERENCES_MASTER_KEY'] ||
89
+ Rails.application.credentials.secret_key_base
90
+
91
+ Spree::Encryptor.new(key)
92
+ end
93
+
75
94
  # List of preference types allowed as form fields in the Solidus admin
76
95
  #
77
96
  # Overwrite this method in your class that includes +Spree::Preferable+