solidus_core 4.1.6 → 4.5.1
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.
- checksums.yaml +4 -4
- data/app/assets/images/logo/solidus.svg +18 -1
- data/app/assets/images/logo/solidus_logo.png +0 -0
- data/app/helpers/spree/base_helper.rb +2 -2
- data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
- data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
- data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
- data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
- data/app/helpers/spree/core/controller_helpers/pricing.rb +19 -0
- data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
- data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
- data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
- data/app/mailers/spree/base_mailer.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +1 -1
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/metadata.rb +64 -0
- data/app/models/concerns/spree/named_type.rb +2 -0
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/user_address_book.rb +8 -9
- data/app/models/concerns/spree/user_methods.rb +3 -3
- data/app/models/spree/address.rb +10 -8
- data/app/models/spree/adjustment.rb +15 -65
- data/app/models/spree/adjustment_reason.rb +2 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
- data/app/models/spree/carton.rb +2 -2
- data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
- data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
- data/app/models/spree/core/state_machines/order.rb +42 -0
- data/app/models/spree/core/state_machines/payment.rb +61 -0
- data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
- data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
- data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
- data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
- data/app/models/spree/core/state_machines/shipment.rb +58 -0
- data/app/models/spree/credit_card.rb +12 -9
- data/app/models/spree/customer_return.rb +2 -0
- data/app/models/spree/deprecated_configurable_class.rb +40 -0
- data/app/models/spree/fulfilment_changer.rb +4 -4
- data/app/models/spree/inventory_unit.rb +2 -2
- data/app/models/spree/item_total.rb +28 -0
- data/app/models/spree/legacy_user.rb +1 -0
- data/app/models/spree/line_item.rb +22 -4
- data/app/models/spree/money.rb +120 -0
- data/app/models/spree/null_promotion_adjuster.rb +13 -0
- data/app/models/spree/null_promotion_advertiser.rb +9 -0
- data/app/models/spree/null_promotion_finder.rb +9 -0
- data/app/models/spree/null_promotion_handler.rb +44 -0
- data/app/models/spree/option_value.rb +1 -0
- data/app/models/spree/order.rb +54 -36
- data/app/models/spree/order_cancellations.rb +8 -8
- data/app/models/spree/order_inventory.rb +6 -4
- data/app/models/spree/order_merger.rb +1 -1
- data/app/models/spree/order_mutex.rb +2 -2
- data/app/models/spree/order_shipping.rb +9 -9
- data/app/models/spree/order_taxation.rb +1 -0
- data/app/models/spree/order_updater.rb +19 -40
- data/app/models/spree/payment/processing.rb +2 -2
- data/app/models/spree/payment.rb +3 -2
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +14 -9
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +12 -6
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_method.rb +3 -1
- data/app/models/spree/payment_source.rb +5 -1
- data/app/models/spree/permission_set.rb +11 -0
- data/app/models/spree/permission_sets/base.rb +45 -0
- data/app/models/spree/permission_sets/configuration_display.rb +53 -0
- data/app/models/spree/permission_sets/configuration_management.rb +52 -0
- data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
- data/app/models/spree/permission_sets/default_customer.rb +83 -0
- data/app/models/spree/permission_sets/order_display.rb +50 -0
- data/app/models/spree/permission_sets/order_management.rb +50 -0
- data/app/models/spree/permission_sets/product_display.rb +43 -0
- data/app/models/spree/permission_sets/product_management.rb +47 -0
- data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
- data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
- data/app/models/spree/permission_sets/stock_display.rb +26 -0
- data/app/models/spree/permission_sets/stock_management.rb +26 -0
- data/app/models/spree/permission_sets/super_user.rb +26 -0
- data/app/models/spree/permission_sets/user_display.rb +27 -0
- data/app/models/spree/permission_sets/user_management.rb +44 -0
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/product.rb +13 -9
- data/app/models/spree/refund.rb +3 -1
- data/app/models/spree/refund_reason.rb +6 -1
- data/app/models/spree/reimbursement.rb +4 -4
- data/app/models/spree/reimbursement_performer.rb +3 -3
- data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
- data/app/models/spree/reimbursement_type/credit.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
- data/app/models/spree/reimbursement_type.rb +6 -1
- data/app/models/spree/return_authorization.rb +2 -0
- data/app/models/spree/return_item.rb +10 -10
- data/app/models/spree/return_reason.rb +6 -1
- data/app/models/spree/role.rb +3 -1
- data/app/models/spree/role_permission.rb +8 -0
- data/app/models/spree/shipment.rb +9 -7
- data/app/models/spree/shipping_category.rb +2 -0
- data/app/models/spree/shipping_rate.rb +2 -3
- data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +8 -12
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/package.rb +2 -2
- data/app/models/spree/stock/simple_coordinator.rb +36 -22
- data/app/models/spree/stock_item.rb +1 -0
- data/app/models/spree/stock_location.rb +5 -5
- data/app/models/spree/store.rb +3 -1
- data/app/models/spree/store_credit.rb +17 -15
- data/app/models/spree/store_credit_event.rb +4 -3
- data/app/models/spree/store_credit_reason.rb +6 -1
- data/app/models/spree/store_selector/by_server_name.rb +1 -1
- data/app/models/spree/tax/tax_helpers.rb +12 -1
- data/app/models/spree/tax_calculator/default.rb +3 -3
- data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
- data/app/models/spree/tax_category.rb +3 -1
- data/app/models/spree/tax_rate.rb +7 -3
- data/app/models/spree/taxon.rb +22 -2
- data/app/models/spree/taxon_brand_selector.rb +22 -0
- data/app/models/spree/taxonomy.rb +2 -2
- data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
- data/app/models/spree/unit_cancel.rb +1 -2
- data/app/models/spree/user_address.rb +9 -3
- data/app/models/spree/variant/scopes.rb +4 -0
- data/app/models/spree/variant/vat_price_generator.rb +1 -1
- data/app/models/spree/variant.rb +21 -8
- data/app/models/spree/wallet.rb +2 -2
- data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
- data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
- data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
- data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
- data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +0 -1
- data/config/locales/en.yml +33 -90
- data/db/default/spree/permission_sets.rb +10 -0
- data/db/default/spree/return_reasons.rb +3 -1
- data/db/default/spree/states.rb +1 -1
- data/db/migrate/20160101010000_solidus_one_four.rb +0 -127
- data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
- data/db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb +1 -1
- data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
- data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
- data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
- data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
- data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
- data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
- data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
- data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
- data/db/seeds.rb +1 -0
- data/lib/generators/solidus/install/app_templates/authentication/custom.rb +0 -5
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
- data/lib/generators/solidus/install/install_generator.rb +64 -15
- data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +15 -12
- data/lib/generators/solidus/update/update_generator.rb +1 -1
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +41 -93
- data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
- data/lib/spree/app_configuration.rb +102 -67
- data/lib/spree/core/class_constantizer.rb +2 -2
- data/lib/spree/core/controller_helpers/auth.rb +5 -61
- data/lib/spree/core/controller_helpers/common.rb +5 -80
- data/lib/spree/core/controller_helpers/order.rb +5 -86
- data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -163
- data/lib/spree/core/controller_helpers/pricing.rb +5 -17
- data/lib/spree/core/controller_helpers/search.rb +5 -14
- data/lib/spree/core/controller_helpers/store.rb +5 -17
- data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
- data/lib/spree/core/engine.rb +13 -5
- data/lib/spree/core/environment/calculators.rb +35 -3
- data/lib/spree/core/environment/promotions.rb +25 -4
- data/lib/spree/core/environment_extension.rb +16 -2
- data/lib/spree/core/importer/order.rb +5 -5
- data/lib/spree/core/importer/product.rb +3 -3
- data/lib/spree/core/nested_class_set.rb +28 -0
- data/lib/spree/core/null_promotion_configuration.rb +84 -0
- data/lib/spree/core/product_filters.rb +1 -1
- data/lib/spree/core/search/variant.rb +2 -2
- data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
- data/lib/spree/core/state_machines/order.rb +5 -251
- data/lib/spree/core/state_machines/payment.rb +5 -59
- data/lib/spree/core/state_machines/reimbursement.rb +5 -31
- data/lib/spree/core/state_machines/return_authorization.rb +5 -30
- data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
- data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
- data/lib/spree/core/state_machines/shipment.rb +5 -56
- data/lib/spree/core/state_machines.rb +48 -81
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +2 -2
- data/lib/spree/core.rb +2 -14
- data/lib/spree/deprecator.rb +9 -0
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +1 -1
- data/lib/spree/money.rb +5 -118
- data/lib/spree/permission_sets/base.rb +5 -30
- data/lib/spree/permission_sets/configuration_display.rb +5 -41
- data/lib/spree/permission_sets/configuration_management.rb +5 -40
- data/lib/spree/permission_sets/dashboard_display.rb +5 -14
- data/lib/spree/permission_sets/default_customer.rb +5 -71
- data/lib/spree/permission_sets/order_display.rb +5 -38
- data/lib/spree/permission_sets/order_management.rb +5 -38
- data/lib/spree/permission_sets/product_display.rb +5 -31
- data/lib/spree/permission_sets/product_management.rb +5 -35
- data/lib/spree/permission_sets/restricted_stock_display.rb +5 -21
- data/lib/spree/permission_sets/restricted_stock_management.rb +5 -21
- data/lib/spree/permission_sets/stock_display.rb +5 -14
- data/lib/spree/permission_sets/stock_management.rb +5 -14
- data/lib/spree/permission_sets/super_user.rb +5 -14
- data/lib/spree/permission_sets/user_display.rb +5 -15
- data/lib/spree/permission_sets/user_management.rb +5 -32
- data/lib/spree/permission_sets.rb +5 -18
- data/lib/spree/permitted_attributes.rb +21 -9
- data/lib/spree/preferences/configuration.rb +4 -0
- data/lib/spree/preferences/persistable.rb +7 -1
- data/lib/spree/preferences/store.rb +2 -2
- data/lib/spree/testing_support/capybara_ext.rb +11 -1
- data/lib/spree/testing_support/common_rake.rb +1 -0
- data/lib/spree/testing_support/dummy_ability.rb +7 -0
- data/lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css +1 -0
- data/lib/spree/testing_support/dummy_app/database.yml +37 -46
- data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +3 -6
- data/lib/spree/testing_support/dummy_app.rb +33 -19
- data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
- data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
- data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
- data/lib/spree/testing_support/factories/order_factory.rb +13 -24
- data/lib/spree/testing_support/factories/product_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/order_walkthrough.rb +3 -3
- data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
- data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
- data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
- data/lib/tasks/colorado_delivery_fee.rake +2 -2
- data/solidus_core.gemspec +7 -10
- metadata +107 -109
- data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
- data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
- data/app/models/spree/calculator/distributed_amount.rb +0 -33
- data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
- data/app/models/spree/calculator/flexi_rate.rb +0 -22
- data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
- data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
- data/app/models/spree/calculator/tiered_percent.rb +0 -62
- data/app/models/spree/line_item_action.rb +0 -8
- data/app/models/spree/order_promotion.rb +0 -27
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
- data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
- data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
- data/app/models/spree/promotion/rules/first_order.rb +0 -38
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
- data/app/models/spree/promotion/rules/item_total.rb +0 -86
- data/app/models/spree/promotion/rules/nth_order.rb +0 -45
- data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
- data/app/models/spree/promotion/rules/option_value.rb +0 -50
- data/app/models/spree/promotion/rules/product.rb +0 -86
- data/app/models/spree/promotion/rules/store.rb +0 -26
- data/app/models/spree/promotion/rules/taxon.rb +0 -91
- data/app/models/spree/promotion/rules/user.rb +0 -34
- data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
- data/app/models/spree/promotion/rules/user_role.rb +0 -45
- data/app/models/spree/promotion.rb +0 -271
- data/app/models/spree/promotion_action.rb +0 -47
- data/app/models/spree/promotion_category.rb +0 -8
- data/app/models/spree/promotion_chooser.rb +0 -34
- data/app/models/spree/promotion_code/batch_builder.rb +0 -64
- data/app/models/spree/promotion_code.rb +0 -54
- data/app/models/spree/promotion_code_batch.rb +0 -27
- data/app/models/spree/promotion_handler/cart.rb +0 -75
- data/app/models/spree/promotion_handler/coupon.rb +0 -123
- data/app/models/spree/promotion_handler/page.rb +0 -26
- data/app/models/spree/promotion_handler/shipping.rb +0 -61
- data/app/models/spree/promotion_rule.rb +0 -55
- data/app/models/spree/promotion_rule_role.rb +0 -8
- data/app/models/spree/promotion_rule_store.rb +0 -10
- data/app/models/spree/promotion_rule_taxon.rb +0 -8
- data/app/models/spree/promotion_rule_user.rb +0 -10
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
- data/bin/rails +0 -13
- data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
- data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
- data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
- data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
- data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
- data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
- data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
- data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
- data/lib/spree/permission_sets/promotion_display.rb +0 -25
- data/lib/spree/permission_sets/promotion_management.rb +0 -25
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
@@ -1,40 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# including:
|
9
|
-
#
|
10
|
-
# - Orders
|
11
|
-
# - Payments
|
12
|
-
# - Shipments
|
13
|
-
# - Adjustments
|
14
|
-
# - Line items
|
15
|
-
# - Return authorizations
|
16
|
-
# - Customer returns
|
17
|
-
# - Order cancellations
|
18
|
-
# - Reimbursements
|
19
|
-
# - Return items
|
20
|
-
# - Refunds
|
21
|
-
#
|
22
|
-
# It also allows reading reimbursement types, but not modifying them.
|
23
|
-
class OrderManagement < PermissionSets::Base
|
24
|
-
def activate!
|
25
|
-
can :read, Spree::ReimbursementType
|
26
|
-
can :manage, Spree::Order
|
27
|
-
can :manage, Spree::Payment
|
28
|
-
can :manage, Spree::Shipment
|
29
|
-
can :manage, Spree::Adjustment
|
30
|
-
can :manage, Spree::LineItem
|
31
|
-
can :manage, Spree::ReturnAuthorization
|
32
|
-
can :manage, Spree::CustomerReturn
|
33
|
-
can :manage, Spree::OrderCancellations
|
34
|
-
can :manage, Spree::Reimbursement
|
35
|
-
can :manage, Spree::ReturnItem
|
36
|
-
can :manage, Spree::Refund
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,33 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# products, also from the admin panel, including:
|
9
|
-
#
|
10
|
-
# - Products
|
11
|
-
# - Images
|
12
|
-
# - Variants
|
13
|
-
# - Option values
|
14
|
-
# - Product properties
|
15
|
-
# - Option types
|
16
|
-
# - Properties
|
17
|
-
# - Taxonomies
|
18
|
-
# - Taxons
|
19
|
-
class ProductDisplay < PermissionSets::Base
|
20
|
-
def activate!
|
21
|
-
can [:read, :admin, :edit], Spree::Product
|
22
|
-
can [:read, :admin], Spree::Image
|
23
|
-
can [:read, :admin], Spree::Variant
|
24
|
-
can [:read, :admin], Spree::OptionValue
|
25
|
-
can [:read, :admin], Spree::ProductProperty
|
26
|
-
can [:read, :admin], Spree::OptionType
|
27
|
-
can [:read, :admin], Spree::Property
|
28
|
-
can [:read, :admin], Spree::Taxonomy
|
29
|
-
can [:read, :admin], Spree::Taxon
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,37 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# including:
|
9
|
-
#
|
10
|
-
# - Products
|
11
|
-
# - Images
|
12
|
-
# - Variants
|
13
|
-
# - Option values
|
14
|
-
# - Product properties
|
15
|
-
# - Option types
|
16
|
-
# - Properties
|
17
|
-
# - Taxonomies
|
18
|
-
# - Taxons
|
19
|
-
# - Classifications
|
20
|
-
# - Prices
|
21
|
-
class ProductManagement < PermissionSets::Base
|
22
|
-
def activate!
|
23
|
-
can :manage, Spree::Classification
|
24
|
-
can :manage, Spree::Image
|
25
|
-
can :manage, Spree::OptionType
|
26
|
-
can :manage, Spree::OptionValue
|
27
|
-
can :manage, Spree::Price
|
28
|
-
can :manage, Spree::Product
|
29
|
-
can :manage, Spree::ProductProperty
|
30
|
-
can :manage, Spree::Property
|
31
|
-
can :manage, Spree::Taxon
|
32
|
-
can :manage, Spree::Taxonomy
|
33
|
-
can :manage, Spree::Variant
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,23 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
# locations, both of them limited to locations they have access to.
|
9
|
-
# Permissions are also granted for the admin panel for items.
|
10
|
-
class RestrictedStockDisplay < PermissionSets::Base
|
11
|
-
def activate!
|
12
|
-
can [:read, :admin], Spree::StockItem, stock_location_id: location_ids
|
13
|
-
can :read, Spree::StockLocation, id: location_ids
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def location_ids
|
19
|
-
@ids ||= user.stock_locations.pluck(:id)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,23 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# access to their locations. Those locations are also readable by the
|
9
|
-
# corresponding ability.
|
10
|
-
class RestrictedStockManagement < PermissionSets::Base
|
11
|
-
def activate!
|
12
|
-
can :manage, Spree::StockItem, stock_location_id: location_ids
|
13
|
-
can :read, Spree::StockLocation, id: location_ids
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def location_ids
|
19
|
-
@ids ||= user.stock_locations.pluck(:id)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,16 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# (also from the admin panel) and stock locations.
|
9
|
-
class StockDisplay < PermissionSets::Base
|
10
|
-
def activate!
|
11
|
-
can [:read, :admin], Spree::StockItem
|
12
|
-
can :read, Spree::StockLocation
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,16 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# access to locations.
|
9
|
-
class StockManagement < PermissionSets::Base
|
10
|
-
def activate!
|
11
|
-
can :manage, Spree::StockItem
|
12
|
-
can :read, Spree::StockLocation
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,16 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
#
|
9
|
-
# It grants permission to perform any read or write action on any resource.
|
10
|
-
class SuperUser < PermissionSets::Base
|
11
|
-
def activate!
|
12
|
-
can :manage, :all
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,17 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# users, roles and store credits, also from the admin panel.
|
9
|
-
class UserDisplay < PermissionSets::Base
|
10
|
-
def activate!
|
11
|
-
can [:read, :admin, :edit, :addresses, :orders, :items], Spree.user_class
|
12
|
-
can [:read, :admin], Spree::StoreCredit
|
13
|
-
can :read, Spree::Role
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,34 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
# related resources, including:
|
9
|
-
#
|
10
|
-
# - Users
|
11
|
-
# - Store credits
|
12
|
-
# - Roles
|
13
|
-
# - API keys
|
14
|
-
class UserManagement < PermissionSets::Base
|
15
|
-
def activate!
|
16
|
-
can [:admin, :read, :create, :update, :save_in_address_book, :remove_from_address_book, :addresses, :orders, :items], Spree.user_class
|
17
|
-
|
18
|
-
# Note: This does not work with accessible_by.
|
19
|
-
# See https://github.com/solidusio/solidus/pull/1263
|
20
|
-
can :update_email, Spree.user_class do |user|
|
21
|
-
user.spree_roles.none?
|
22
|
-
end
|
23
|
-
can :update_password, Spree.user_class do |user|
|
24
|
-
user.spree_roles.none?
|
25
|
-
end
|
26
|
-
|
27
|
-
cannot :destroy, Spree.user_class
|
28
|
-
can :manage, Spree::StoreCredit
|
29
|
-
can :manage, :api_key
|
30
|
-
can :read, Spree::Role
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -1,20 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
require
|
6
|
-
|
7
|
-
|
8
|
-
require 'spree/permission_sets/order_display'
|
9
|
-
require 'spree/permission_sets/order_management'
|
10
|
-
require 'spree/permission_sets/product_display'
|
11
|
-
require 'spree/permission_sets/product_management'
|
12
|
-
require 'spree/permission_sets/promotion_display'
|
13
|
-
require 'spree/permission_sets/promotion_management'
|
14
|
-
require 'spree/permission_sets/restricted_stock_display'
|
15
|
-
require 'spree/permission_sets/restricted_stock_management'
|
16
|
-
require 'spree/permission_sets/stock_display'
|
17
|
-
require 'spree/permission_sets/stock_management'
|
18
|
-
require 'spree/permission_sets/super_user'
|
19
|
-
require 'spree/permission_sets/user_display'
|
20
|
-
require 'spree/permission_sets/user_management'
|
3
|
+
Spree.deprecator.warn(
|
4
|
+
<<~MSG
|
5
|
+
The file "#{__FILE__}" does not need to be `require`d any longer, it is now autoloaded.
|
6
|
+
MSG
|
7
|
+
)
|
@@ -14,6 +14,7 @@ module Spree
|
|
14
14
|
:checkout_confirm_attributes,
|
15
15
|
:credit_card_update_attributes,
|
16
16
|
:customer_return_attributes,
|
17
|
+
:customer_metadata_attributes,
|
17
18
|
:image_attributes,
|
18
19
|
:inventory_unit_attributes,
|
19
20
|
:line_item_attributes,
|
@@ -55,21 +56,23 @@ module Spree
|
|
55
56
|
:stock_location_id, return_items_attributes: [
|
56
57
|
:id, :inventory_unit_id, :return_authorization_id, :returned, :amount,
|
57
58
|
:reception_status_event, :acceptance_status, :exchange_variant_id,
|
58
|
-
:resellable, :return_reason_id
|
59
|
+
:resellable, :return_reason_id, customer_metadata: {}
|
59
60
|
]
|
60
61
|
]
|
61
62
|
|
63
|
+
@@customer_metadata_attributes = [customer_metadata: {}]
|
64
|
+
|
62
65
|
@@image_attributes = [:alt, :attachment, :position, :viewable_type, :viewable_id]
|
63
66
|
|
64
67
|
@@inventory_unit_attributes = [:shipment, :variant_id]
|
65
68
|
|
66
|
-
@@line_item_attributes = [:id, :variant_id, :quantity]
|
69
|
+
@@line_item_attributes = [:id, :variant_id, :quantity, customer_metadata: {}]
|
67
70
|
|
68
71
|
@@option_value_attributes = [:name, :presentation]
|
69
72
|
|
70
73
|
@@option_type_attributes = [:name, :presentation, option_values_attributes: option_value_attributes]
|
71
74
|
|
72
|
-
@@payment_attributes = [:amount, :payment_method_id, :payment_method]
|
75
|
+
@@payment_attributes = [:amount, :payment_method_id, :payment_method, customer_metadata: {}]
|
73
76
|
|
74
77
|
@@product_properties_attributes = [:property_name, :value, :position]
|
75
78
|
|
@@ -78,16 +81,24 @@ module Spree
|
|
78
81
|
:meta_keywords, :price, :sku, :deleted_at,
|
79
82
|
:option_values_hash, :weight, :height, :width, :depth,
|
80
83
|
:shipping_category_id, :tax_category_id,
|
81
|
-
:taxon_ids, :option_type_ids, :cost_currency, :cost_price
|
84
|
+
:taxon_ids, :option_type_ids, :cost_currency, :cost_price, :primary_taxon_id,
|
85
|
+
:gtin, :condition
|
82
86
|
]
|
83
87
|
|
84
88
|
@@property_attributes = [:name, :presentation]
|
85
89
|
|
86
|
-
@@return_authorization_attributes = [:memo, :stock_location_id, :return_reason_id,
|
90
|
+
@@return_authorization_attributes = [:memo, :stock_location_id, :return_reason_id,
|
91
|
+
customer_metadata: {},
|
92
|
+
return_items_attributes: [
|
93
|
+
:inventory_unit_id,
|
94
|
+
:exchange_variant_id,
|
95
|
+
:return_reason_id,
|
96
|
+
:preferred_reimbursement_type_id
|
97
|
+
]]
|
87
98
|
|
88
99
|
@@shipment_attributes = [
|
89
100
|
:special_instructions, :stock_location_id, :id, :tracking,
|
90
|
-
:selected_shipping_rate_id
|
101
|
+
:selected_shipping_rate_id, customer_metadata: {}
|
91
102
|
]
|
92
103
|
|
93
104
|
# month / year may be provided by some sources, or others may elect to use one field
|
@@ -95,7 +106,7 @@ module Spree
|
|
95
106
|
:number, :month, :year, :expiry, :verification_value,
|
96
107
|
:first_name, :last_name, :cc_type, :gateway_customer_profile_id,
|
97
108
|
:gateway_payment_profile_id, :last_digits, :name, :encrypted_data,
|
98
|
-
:wallet_payment_source_id, address_attributes:
|
109
|
+
:wallet_payment_source_id, address_attributes:
|
99
110
|
]
|
100
111
|
|
101
112
|
@@stock_item_attributes = [:variant, :stock_location, :backorderable, :variant_id]
|
@@ -126,7 +137,7 @@ module Spree
|
|
126
137
|
# by changing a user with higher priveleges' email to one a lower-priveleged
|
127
138
|
# admin owns. Creating a user with an email is handled separate at the
|
128
139
|
# controller level.
|
129
|
-
@@user_attributes = [:password, :password_confirmation]
|
140
|
+
@@user_attributes = [:password, :password_confirmation, customer_metadata: {}]
|
130
141
|
|
131
142
|
@@variant_attributes = [
|
132
143
|
:name, :presentation, :cost_price, :lock_version,
|
@@ -140,6 +151,7 @@ module Spree
|
|
140
151
|
|
141
152
|
@@checkout_address_attributes = [
|
142
153
|
:use_billing,
|
154
|
+
:use_shipping,
|
143
155
|
:email,
|
144
156
|
bill_address_attributes: address_attributes,
|
145
157
|
ship_address_attributes: address_attributes
|
@@ -152,7 +164,7 @@ module Spree
|
|
152
164
|
|
153
165
|
@@checkout_payment_attributes = [
|
154
166
|
payments_attributes: payment_attributes + [
|
155
|
-
source_attributes:
|
167
|
+
source_attributes:
|
156
168
|
]
|
157
169
|
]
|
158
170
|
|
@@ -173,6 +173,10 @@ module Spree::Preferences
|
|
173
173
|
class_name = class_name.constantize if class_name.is_a?(String)
|
174
174
|
class_name
|
175
175
|
end
|
176
|
+
|
177
|
+
define_method("#{name}_name") do
|
178
|
+
instance_variable_get(ivar) || default
|
179
|
+
end
|
176
180
|
end
|
177
181
|
|
178
182
|
def self.by_version(*args)
|
@@ -7,7 +7,13 @@ module Spree
|
|
7
7
|
|
8
8
|
included do
|
9
9
|
include Spree::Preferences::Preferable
|
10
|
-
|
10
|
+
|
11
|
+
if Rails.gem_version >= Gem::Version.new('7.1')
|
12
|
+
serialize :preferences, type: Hash, coder: YAML
|
13
|
+
else
|
14
|
+
serialize :preferences, Hash, coder: YAML
|
15
|
+
end
|
16
|
+
|
11
17
|
after_initialize :initialize_preference_defaults
|
12
18
|
end
|
13
19
|
|
@@ -19,7 +19,7 @@ module Spree::Preferences
|
|
19
19
|
|
20
20
|
def exist?(key)
|
21
21
|
@cache.exist?(key) ||
|
22
|
-
should_persist? && Spree::Preference.where(key:
|
22
|
+
should_persist? && Spree::Preference.where(key:).exists?
|
23
23
|
end
|
24
24
|
|
25
25
|
def get(key)
|
@@ -35,7 +35,7 @@ module Spree::Preferences
|
|
35
35
|
# has been cleared from the cache
|
36
36
|
|
37
37
|
# does it exist in the database?
|
38
|
-
if preference = Spree::Preference.find_by(key:
|
38
|
+
if preference = Spree::Preference.find_by(key:)
|
39
39
|
# it does exist
|
40
40
|
val = preference.value
|
41
41
|
else
|
@@ -23,7 +23,7 @@ module Spree
|
|
23
23
|
field.dispatchEvent(event);
|
24
24
|
JS
|
25
25
|
else
|
26
|
-
fill_in locator, with:
|
26
|
+
fill_in locator, with:
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -110,6 +110,16 @@ module Spree
|
|
110
110
|
# find the original.
|
111
111
|
find('label:not(.select2-offscreen)', text: /#{Regexp.escape(text)}/i, match: :one)
|
112
112
|
end
|
113
|
+
|
114
|
+
def dialog(parent: 'body', **options)
|
115
|
+
within(parent) do
|
116
|
+
find('dialog', visible: :all, **options)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
def turbo_frame_modal
|
121
|
+
dialog(parent: find('turbo-frame', visible: :all))
|
122
|
+
end
|
113
123
|
end
|
114
124
|
end
|
115
125
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
/* Placeholder for compiled tailwind.css file */
|
@@ -1,54 +1,45 @@
|
|
1
|
-
<%
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
1
|
+
<%
|
2
|
+
adapter =
|
3
|
+
case ENV['DB']
|
4
|
+
when 'mysql2', 'mysql' then 'mysql2'
|
5
|
+
when 'postgresql', 'postgres' then 'postgresql'
|
6
|
+
when 'sqlite3', 'sqlite', '', nil then 'sqlite3'
|
7
|
+
else raise "Invalid DB specified " + ENV['DB'].inspect
|
8
|
+
end
|
9
|
+
|
10
|
+
db_host =
|
11
|
+
case adapter
|
12
|
+
when 'mysql2' then ENV['DB_MYSQL_HOST'] || ENV['DB_HOST']
|
13
|
+
when 'postgresql' then ENV['DB_POSTGRES_HOST'] || ENV['DB_HOST']
|
14
|
+
else ENV['DB_HOST']
|
15
|
+
end
|
16
|
+
|
17
|
+
db_prefix = ENV['LIB_NAME'].presence || "solidus"
|
18
|
+
db_username = ENV['DB_USERNAME']
|
19
|
+
db_password = ENV['DB_PASSWORD'] %>
|
20
|
+
|
21
|
+
default: &default
|
22
|
+
adapter: <%= adapter %>
|
23
|
+
<% unless db_username.blank? %>username: <%= db_username %><% end %>
|
24
|
+
<% unless db_password.blank? %>password: <%= db_password %><% end %>
|
25
|
+
<% unless db_host.blank? %>host: <%= db_host %><% end %>
|
26
|
+
<% if adapter == 'mysql2' %>encoding: utf8<% end %>
|
27
|
+
<% if adapter == 'postgresql' %>min_messages: warning<% end %>
|
28
|
+
|
29
|
+
<% if adapter == 'mysql2' %>
|
24
30
|
test:
|
25
|
-
|
31
|
+
<<: *default
|
26
32
|
database: <%= db_prefix %>_test
|
27
|
-
|
28
|
-
|
29
|
-
<% end %>
|
30
|
-
<% unless db_password.blank? %>
|
31
|
-
password: <%= db_password %>
|
32
|
-
<% end %>
|
33
|
-
<% unless db_host.blank? %>
|
34
|
-
host: <%= db_host %>
|
35
|
-
<% end %>
|
36
|
-
encoding: utf8
|
37
|
-
<% when 'postgres' %>
|
33
|
+
|
34
|
+
<% elsif adapter == 'postgresql' %>
|
38
35
|
test:
|
39
|
-
|
36
|
+
<<: *default
|
40
37
|
database: <%= db_prefix %>_test
|
41
|
-
|
42
|
-
|
43
|
-
password: <%= db_password %>
|
44
|
-
<% end %>
|
45
|
-
<% unless db_host.blank? %>
|
46
|
-
host: <%= db_host %>
|
47
|
-
<% end %>
|
48
|
-
min_messages: warning
|
49
|
-
<% when 'sqlite' %>
|
38
|
+
|
39
|
+
<% elsif adapter == 'sqlite3' %>
|
50
40
|
test:
|
51
|
-
|
41
|
+
<<: *default
|
52
42
|
database: db/<%= db_prefix %>_test.sqlite3
|
53
43
|
timeout: 10000
|
44
|
+
|
54
45
|
<% end %>
|
@@ -4,21 +4,6 @@ module DummyApp
|
|
4
4
|
module Migrations
|
5
5
|
extend self
|
6
6
|
|
7
|
-
# Ensure database exists
|
8
|
-
def database_exists?
|
9
|
-
ActiveRecord::Base.connection
|
10
|
-
rescue ActiveRecord::NoDatabaseError
|
11
|
-
false
|
12
|
-
else
|
13
|
-
true
|
14
|
-
end
|
15
|
-
|
16
|
-
def needs_migration?
|
17
|
-
return true if !database_exists?
|
18
|
-
|
19
|
-
ActiveRecord::Base.connection.migration_context.needs_migration?
|
20
|
-
end
|
21
|
-
|
22
7
|
def auto_migrate
|
23
8
|
if needs_migration?
|
24
9
|
puts "Configuration changed. Re-running migrations"
|
@@ -35,6 +20,14 @@ module DummyApp
|
|
35
20
|
|
36
21
|
private
|
37
22
|
|
23
|
+
def needs_migration?
|
24
|
+
ActiveRecord::Migration.check_all_pending!
|
25
|
+
rescue ActiveRecord::PendingMigrationError, ActiveRecord::NoDatabaseError
|
26
|
+
true
|
27
|
+
else
|
28
|
+
false
|
29
|
+
end
|
30
|
+
|
38
31
|
def sh(cmd)
|
39
32
|
puts cmd
|
40
33
|
system cmd
|