solidus_core 4.4.2 → 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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/spree/core/controller_helpers/auth.rb +66 -0
  3. data/app/helpers/spree/core/controller_helpers/common.rb +82 -0
  4. data/app/helpers/spree/core/controller_helpers/order.rb +86 -0
  5. data/app/helpers/spree/core/controller_helpers/payment_parameters.rb +165 -0
  6. data/app/helpers/spree/core/controller_helpers/pricing.rb +19 -0
  7. data/app/helpers/spree/core/controller_helpers/search.rb +16 -0
  8. data/app/helpers/spree/core/controller_helpers/store.rb +19 -0
  9. data/app/helpers/spree/core/controller_helpers/strong_parameters.rb +74 -0
  10. data/app/models/concerns/spree/metadata.rb +64 -0
  11. data/app/models/concerns/spree/user_address_book.rb +4 -5
  12. data/app/models/spree/core/state_machines/inventory_unit.rb +42 -0
  13. data/app/models/spree/core/state_machines/order/class_methods.rb +217 -0
  14. data/app/models/spree/core/state_machines/order.rb +42 -0
  15. data/app/models/spree/core/state_machines/payment.rb +61 -0
  16. data/app/models/spree/core/state_machines/reimbursement.rb +33 -0
  17. data/app/models/spree/core/state_machines/return_authorization.rb +32 -0
  18. data/app/models/spree/core/state_machines/return_item/acceptance_status.rb +51 -0
  19. data/app/models/spree/core/state_machines/return_item/reception_status.rb +42 -0
  20. data/app/models/spree/core/state_machines/shipment.rb +58 -0
  21. data/app/models/spree/customer_return.rb +2 -0
  22. data/app/models/spree/item_total.rb +28 -0
  23. data/app/models/spree/legacy_user.rb +1 -0
  24. data/app/models/spree/line_item.rb +21 -0
  25. data/app/models/spree/money.rb +120 -0
  26. data/app/models/spree/order.rb +20 -9
  27. data/app/models/spree/order_merger.rb +1 -1
  28. data/app/models/spree/order_taxation.rb +1 -0
  29. data/app/models/spree/order_updater.rb +13 -30
  30. data/app/models/spree/payment.rb +1 -0
  31. data/app/models/spree/permission_sets/base.rb +45 -0
  32. data/app/models/spree/permission_sets/configuration_display.rb +53 -0
  33. data/app/models/spree/permission_sets/configuration_management.rb +52 -0
  34. data/app/models/spree/permission_sets/dashboard_display.rb +28 -0
  35. data/app/models/spree/permission_sets/default_customer.rb +83 -0
  36. data/app/models/spree/permission_sets/order_display.rb +50 -0
  37. data/app/models/spree/permission_sets/order_management.rb +50 -0
  38. data/app/models/spree/permission_sets/product_display.rb +43 -0
  39. data/app/models/spree/permission_sets/product_management.rb +47 -0
  40. data/app/models/spree/permission_sets/restricted_stock_display.rb +33 -0
  41. data/app/models/spree/permission_sets/restricted_stock_management.rb +33 -0
  42. data/app/models/spree/permission_sets/stock_display.rb +26 -0
  43. data/app/models/spree/permission_sets/stock_management.rb +26 -0
  44. data/app/models/spree/permission_sets/super_user.rb +26 -0
  45. data/app/models/spree/permission_sets/user_display.rb +27 -0
  46. data/app/models/spree/permission_sets/user_management.rb +44 -0
  47. data/app/models/spree/product.rb +7 -0
  48. data/app/models/spree/refund.rb +2 -0
  49. data/app/models/spree/return_authorization.rb +2 -0
  50. data/app/models/spree/shipment.rb +2 -0
  51. data/app/models/spree/simple_order_contents.rb +4 -1
  52. data/app/models/spree/store_credit_event.rb +1 -0
  53. data/app/models/spree/tax/tax_helpers.rb +12 -1
  54. data/app/models/spree/tax_calculator/default.rb +1 -1
  55. data/app/models/spree/taxon.rb +22 -2
  56. data/app/models/spree/taxon_brand_selector.rb +22 -0
  57. data/app/models/spree/unauthorized_redirect_handler.rb +24 -0
  58. data/app/models/spree/user_address.rb +9 -3
  59. data/app/models/spree/variant.rb +14 -1
  60. data/config/locales/en.yml +14 -0
  61. data/db/migrate/20220419170826_remove_archived_user_addresses.rb +12 -0
  62. data/db/migrate/20250129061658_add_metadata_to_spree_resources.rb +28 -0
  63. data/db/migrate/20250201172950_add_gtin_and_condition_to_spree_variant.rb +6 -0
  64. data/db/migrate/20250207104016_add_primary_taxon_to_products.rb +7 -0
  65. data/db/migrate/20250221152004_add_metadata_to_users.rb +13 -0
  66. data/lib/generators/solidus/install/app_templates/authentication/custom.rb +0 -5
  67. data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
  68. data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
  69. data/lib/generators/spree/dummy/templates/rails/application.rb.tt +1 -1
  70. data/lib/generators/spree/dummy/templates/rails/manifest.js +3 -0
  71. data/lib/spree/app_configuration.rb +49 -0
  72. data/lib/spree/core/controller_helpers/auth.rb +5 -61
  73. data/lib/spree/core/controller_helpers/common.rb +5 -80
  74. data/lib/spree/core/controller_helpers/order.rb +5 -86
  75. data/lib/spree/core/controller_helpers/payment_parameters.rb +5 -163
  76. data/lib/spree/core/controller_helpers/pricing.rb +5 -17
  77. data/lib/spree/core/controller_helpers/search.rb +5 -14
  78. data/lib/spree/core/controller_helpers/store.rb +5 -17
  79. data/lib/spree/core/controller_helpers/strong_parameters.rb +5 -71
  80. data/lib/spree/core/engine.rb +5 -0
  81. data/lib/spree/core/state_machines/inventory_unit.rb +5 -40
  82. data/lib/spree/core/state_machines/order.rb +5 -250
  83. data/lib/spree/core/state_machines/payment.rb +5 -59
  84. data/lib/spree/core/state_machines/reimbursement.rb +5 -31
  85. data/lib/spree/core/state_machines/return_authorization.rb +5 -30
  86. data/lib/spree/core/state_machines/return_item/acceptance_status.rb +5 -49
  87. data/lib/spree/core/state_machines/return_item/reception_status.rb +5 -40
  88. data/lib/spree/core/state_machines/shipment.rb +5 -56
  89. data/lib/spree/core/state_machines.rb +48 -81
  90. data/lib/spree/core/version.rb +2 -2
  91. data/lib/spree/core.rb +0 -10
  92. data/lib/spree/money.rb +5 -118
  93. data/lib/spree/permission_sets/base.rb +5 -42
  94. data/lib/spree/permission_sets/configuration_display.rb +5 -51
  95. data/lib/spree/permission_sets/configuration_management.rb +5 -50
  96. data/lib/spree/permission_sets/dashboard_display.rb +5 -26
  97. data/lib/spree/permission_sets/default_customer.rb +5 -81
  98. data/lib/spree/permission_sets/order_display.rb +5 -48
  99. data/lib/spree/permission_sets/order_management.rb +5 -48
  100. data/lib/spree/permission_sets/product_display.rb +5 -41
  101. data/lib/spree/permission_sets/product_management.rb +5 -45
  102. data/lib/spree/permission_sets/restricted_stock_display.rb +5 -31
  103. data/lib/spree/permission_sets/restricted_stock_management.rb +5 -31
  104. data/lib/spree/permission_sets/stock_display.rb +5 -24
  105. data/lib/spree/permission_sets/stock_management.rb +5 -24
  106. data/lib/spree/permission_sets/super_user.rb +5 -24
  107. data/lib/spree/permission_sets/user_display.rb +5 -25
  108. data/lib/spree/permission_sets/user_management.rb +5 -42
  109. data/lib/spree/permission_sets.rb +5 -16
  110. data/lib/spree/permitted_attributes.rb +18 -7
  111. data/lib/spree/preferences/configuration.rb +4 -0
  112. data/lib/spree/preferences/persistable.rb +1 -1
  113. data/lib/spree/testing_support/capybara_ext.rb +10 -0
  114. data/lib/spree/testing_support/dummy_app.rb +1 -1
  115. data/lib/spree/testing_support/factories/order_factory.rb +9 -1
  116. data/solidus_core.gemspec +1 -1
  117. metadata +65 -24
  118. data/lib/generators/spree/dummy/templates/rails/script/rails +0 -6
@@ -1,58 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module Core
5
- class StateMachines
6
- # Shipments' state machine
7
- #
8
- # for each event the following instance methods are dynamically implemented:
9
- # #<event_name>
10
- # #<event_name>!
11
- # #can_<event_name>?
12
- #
13
- # for each state the following instance methods are implemented:
14
- # #<state_name>?
15
- #
16
- module Shipment
17
- extend ActiveSupport::Concern
18
-
19
- included do
20
- state_machine initial: :pending, use_transactions: false do
21
- event :ready do
22
- transition from: :pending, to: :shipped, if: :can_transition_from_pending_to_shipped?
23
- transition from: :pending, to: :ready, if: :can_transition_from_pending_to_ready?
24
- end
25
-
26
- event :pend do
27
- transition from: :ready, to: :pending
28
- end
29
-
30
- event :ship do
31
- transition from: [:ready, :canceled], to: :shipped
32
- end
33
- after_transition to: :shipped, do: :after_ship
34
-
35
- event :cancel do
36
- transition to: :canceled, from: [:pending, :ready]
37
- end
38
- after_transition to: :canceled, do: :after_cancel
39
-
40
- event :resume do
41
- transition from: :canceled, to: :ready, if: :can_transition_from_canceled_to_ready?
42
- transition from: :canceled, to: :pending
43
- end
44
- after_transition from: :canceled, to: [:pending, :ready, :shipped], do: :after_resume
45
-
46
- after_transition do |shipment, transition|
47
- shipment.state_changes.create!(
48
- previous_state: transition.from,
49
- next_state: transition.to,
50
- name: 'shipment'
51
- )
52
- end
53
- end
54
- end
55
- end
56
- end
57
- end
58
- 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
+ )
@@ -2,87 +2,54 @@
2
2
 
3
3
  module Spree
4
4
  module Core
5
- class StateMachines
6
- attr_writer :reimbursement,
7
- :return_authorization,
8
- :return_item_acceptance,
9
- :return_item_reception,
10
- :payment,
11
- :inventory_unit,
12
- :shipment,
13
- :order
14
-
15
- def return_authorization
16
- @return_authorization ||= begin
17
- require 'spree/core/state_machines/return_authorization'
18
- 'Spree::Core::StateMachines::ReturnAuthorization'
19
- end
20
-
21
- @return_authorization.constantize
22
- end
23
-
24
- def return_item_reception
25
- @return_item_reception_status ||= begin
26
- require 'spree/core/state_machines/return_item/reception_status'
27
- 'Spree::Core::StateMachines::ReturnItem::ReceptionStatus'
28
- end
29
-
30
- @return_item_reception_status.constantize
31
- end
32
-
33
- def return_item_acceptance
34
- @return_item_acceptance_status ||= begin
35
- require 'spree/core/state_machines/return_item/acceptance_status'
36
- 'Spree::Core::StateMachines::ReturnItem::AcceptanceStatus'
37
- end
38
-
39
- @return_item_acceptance_status.constantize
40
- end
41
-
42
- def payment
43
- @payment ||= begin
44
- require 'spree/core/state_machines/payment'
45
- 'Spree::Core::StateMachines::Payment'
46
- end
47
-
48
- @payment.constantize
49
- end
50
-
51
- def inventory_unit
52
- @inventory_unit ||= begin
53
- require 'spree/core/state_machines/inventory_unit'
54
- 'Spree::Core::StateMachines::InventoryUnit'
55
- end
56
-
57
- @inventory_unit.constantize
58
- end
59
-
60
- def shipment
61
- @shipment ||= begin
62
- require 'spree/core/state_machines/shipment'
63
- 'Spree::Core::StateMachines::Shipment'
64
- end
65
-
66
- @shipment.constantize
67
- end
68
-
69
- def order
70
- @order ||= begin
71
- require 'spree/core/state_machines/order'
72
- 'Spree::Core::StateMachines::Order'
73
- end
74
-
75
- @order.constantize
76
- end
77
-
78
- def reimbursement
79
- @reimbursement ||= begin
80
- require 'spree/core/state_machines/reimbursement'
81
- 'Spree::Core::StateMachines::Reimbursement'
82
- end
83
-
84
- @reimbursement.constantize
85
- end
5
+ class StateMachines < Spree::Preferences::Configuration
6
+ # State Machine module for Reimbursements
7
+ #
8
+ # @!attribute [rw] reimbursement
9
+ # @return [Module] a module that implements the state machine for the `Spree::Reimbursement` model.
10
+ class_name_attribute :reimbursement, default: "Spree::Core::StateMachines::Reimbursement"
11
+
12
+ # State Machine module for Return Authorizations
13
+ #
14
+ # @!attribute [rw] return_authorization
15
+ # @return [Module] a module that implements the state machine for the `Spree::ReturnAuthorization` model.
16
+ class_name_attribute :return_authorization, default: "Spree::Core::StateMachines::ReturnAuthorization"
17
+
18
+ # State Machine module for Return Item Acceptances
19
+ #
20
+ # @!attribute [rw] return_item_acceptance
21
+ # @return [Module] a module that implements the acceptance part of the state machine for the `Spree::ReturnItem` model.
22
+ class_name_attribute :return_item_acceptance, default: "Spree::Core::StateMachines::ReturnItem::AcceptanceStatus"
23
+
24
+ # State Machine module for Return Item Receptions
25
+ #
26
+ # @!attribute [rw] return_item_reception
27
+ # @return [Module] a module that implements the reception part of the state machine for the `Spree::ReturnItem` model.
28
+ class_name_attribute :return_item_reception, default: "Spree::Core::StateMachines::ReturnItem::ReceptionStatus"
29
+
30
+ # State Machine module for Payments
31
+ #
32
+ # @!attribute [rw] payment
33
+ # @return [Module] a module that implements the state machine for the `Spree::Payment` model.
34
+ class_name_attribute :payment, default: "Spree::Core::StateMachines::Payment"
35
+
36
+ # State Machine module for Inventory Units
37
+ #
38
+ # @!attribute [rw] inventory_unit
39
+ # @return [Module] a module that implements the state machine for the `Spree::InventoryUnit` model.
40
+ class_name_attribute :inventory_unit, default: "Spree::Core::StateMachines::InventoryUnit"
41
+
42
+ # State Machine module for Shipments
43
+ #
44
+ # @!attribute [rw] shipment
45
+ # @return [Module] a module that implements the state machine for the `Spree::Shipment` model.
46
+ class_name_attribute :shipment, default: "Spree::Core::StateMachines::Shipment"
47
+
48
+ # State Machine module for Orders
49
+ #
50
+ # @!attribute [rw] order
51
+ # @return [Module] a module that implements the state machine for the `Spree::Order` model.
52
+ class_name_attribute :order, default: "Spree::Core::StateMachines::Order"
86
53
  end
87
54
  end
88
55
  end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spree
4
- VERSION = "4.4.2"
4
+ VERSION = "4.5.1"
5
5
 
6
6
  def self.solidus_version
7
7
  VERSION
8
8
  end
9
9
 
10
10
  def self.previous_solidus_minor_version
11
- '4.3'
11
+ '4.4'
12
12
  end
13
13
 
14
14
  def self.solidus_gem_version
data/lib/spree/core.rb CHANGED
@@ -105,26 +105,16 @@ require 'spree/core/engine'
105
105
 
106
106
  require 'spree/i18n'
107
107
  require 'spree/localized_number'
108
- require 'spree/money'
109
108
  require 'spree/permitted_attributes'
110
109
 
111
110
  require 'spree/core/importer'
112
111
  require 'spree/core/permalinks'
113
112
  require 'spree/core/product_duplicator'
114
- require 'spree/core/controller_helpers/auth'
115
- require 'spree/core/controller_helpers/common'
116
- require 'spree/core/controller_helpers/order'
117
- require 'spree/core/controller_helpers/payment_parameters'
118
- require 'spree/core/controller_helpers/pricing'
119
- require 'spree/core/controller_helpers/search'
120
- require 'spree/core/controller_helpers/store'
121
- require 'spree/core/controller_helpers/strong_parameters'
122
113
  require 'spree/core/role_configuration'
123
114
  require 'spree/core/state_machines'
124
115
  require 'spree/core/stock_configuration'
125
116
  require 'spree/core/null_promotion_configuration'
126
117
  require 'spree/core/validators/email'
127
- require 'spree/permission_sets'
128
118
  require 'spree/user_class_handle'
129
119
 
130
120
  require 'spree/preferences/store'
data/lib/spree/money.rb CHANGED
@@ -1,120 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- # Spree::Money is a relatively thin wrapper around Monetize which handles
5
- # formatting via Spree::Config.
6
- class Money
7
- include Comparable
8
- DifferentCurrencyError = Class.new(StandardError)
9
-
10
- class <<self
11
- attr_accessor :default_formatting_rules
12
-
13
- def parse(amount, currency = Spree::Config[:currency])
14
- new(parse_to_money(amount, currency))
15
- end
16
-
17
- # @api private
18
- def parse_to_money(amount, currency)
19
- ::Monetize.parse(amount, currency)
20
- end
21
- end
22
- self.default_formatting_rules = {
23
- # Ruby money currently has this as false, which is wrong for the vast
24
- # majority of locales.
25
- sign_before_symbol: true
26
- }
27
-
28
- attr_reader :money
29
-
30
- delegate :cents, :currency, :to_d, :zero?, to: :money
31
-
32
- # @param amount [Money, #to_s] the value of the money object
33
- # @param options [Hash] the default options for formatting the money object See #format
34
- def initialize(amount, options = {})
35
- if amount.is_a?(::Money)
36
- @money = amount
37
- else
38
- currency = options[:currency] || Spree::Config[:currency]
39
-
40
- @money = Monetize.from_string(amount, currency)
41
- end
42
- @options = Spree::Money.default_formatting_rules.merge(options)
43
- end
44
-
45
- # @return [String] the value of this money object formatted according to
46
- # its options
47
- def to_s
48
- format
49
- end
50
-
51
- # @param options [Hash, String] the options for formatting the money object
52
- # @option options [Boolean] with_currency when true, show the currency
53
- # @option options [Boolean] no_cents when true, round to the closest dollar
54
- # @option options [String] decimal_mark the mark for delimiting the
55
- # decimals
56
- # @option options [String, false, nil] thousands_separator the character to
57
- # delimit powers of 1000, if one is desired, otherwise false or nil
58
- # @option options [Boolean] sign_before_symbol when true the sign of the
59
- # value comes before the currency symbol
60
- # @option options [:before, :after] symbol_position the position of the
61
- # currency symbol
62
- # @return [String] the value of this money object formatted according to
63
- # its options
64
- def format(options = {})
65
- @money.format(@options.merge(options))
66
- end
67
-
68
- # @note If you pass in options, ensure you pass in the { html_wrap: true } as well.
69
- # @param options [Hash] additional formatting options
70
- # @return [String] the value of this money object formatted according to
71
- # its options and any additional options, by default with html_wrap.
72
- def to_html(options = { html_wrap: true })
73
- output = format(options)
74
- # Maintain compatibility by checking html option renamed to html_wrap.
75
- if options[:html_wrap]
76
- output = output.html_safe
77
- end
78
- output
79
- end
80
-
81
- # (see #to_s)
82
- def as_json(*)
83
- to_s
84
- end
85
-
86
- def <=>(other)
87
- if !other.respond_to?(:money)
88
- raise TypeError, "Can't compare #{other.class} to Spree::Money"
89
- end
90
- if currency != other.currency
91
- # By default, ::Money will try to run a conversion on `other.money` and
92
- # try a comparison on that. We do not want any currency conversion to
93
- # take place so we'll catch this here and raise an error.
94
- raise(
95
- DifferentCurrencyError,
96
- "Can't compare #{currency} with #{other.currency}"
97
- )
98
- end
99
- @money <=> other.money
100
- end
101
-
102
- # Delegates comparison to the internal ruby money instance.
103
- #
104
- # @see http://www.rubydoc.info/gems/money/Money/Arithmetic#%3D%3D-instance_method
105
- def ==(other)
106
- raise TypeError, "Can't compare #{other.class} to Spree::Money" if !other.respond_to?(:money)
107
- @money == other.money
108
- end
109
-
110
- def -(other)
111
- raise TypeError, "Can't subtract #{other.class} to Spree::Money" if !other.respond_to?(:money)
112
- self.class.new(@money - other.money)
113
- end
114
-
115
- def +(other)
116
- raise TypeError, "Can't add #{other.class} to Spree::Money" if !other.respond_to?(:money)
117
- self.class.new(@money + other.money)
118
- end
119
- end
120
- 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,44 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module PermissionSets
5
- # This is the base class used for crafting permission sets.
6
- #
7
- # This is used by {Spree::RoleConfiguration} when adding custom behavior to {Spree::Ability}.
8
- # See one of the subclasses for example structure such as {Spree::PermissionSets::UserDisplay}
9
- #
10
- # @see Spree::RoleConfiguration
11
- # @see Spree::PermissionSets
12
- class Base
13
- # @param ability [CanCan::Ability]
14
- # The ability that will be extended with the current permission set.
15
- # The ability passed in must respond to #user
16
- def initialize(ability)
17
- @ability = ability
18
- end
19
-
20
- # Activate permissions on the ability. Put your can and cannot statements here.
21
- # Must be overridden by subclasses
22
- def activate!
23
- raise NotImplementedError.new
24
- end
25
-
26
- # Provide the permission set privilege in the form of a :symbol.
27
- # Must be overridden by subclasses.
28
- def self.privilege
29
- raise NotImplementedError, "Subclass #{name} must define a privilege using `self.privilege :symbol`"
30
- end
31
-
32
- # Provide the permission set category in the form of a :symbol.
33
- # Must be overridden by subclasses.
34
- def self.category
35
- raise NotImplementedError, "Subclass #{name} must define a category using `self.category :symbol`"
36
- end
37
-
38
- private
39
-
40
- attr_reader :ability
41
- delegate :can, :cannot, :user, to: :ability
42
- end
43
- end
44
- 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,53 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module PermissionSets
5
- # Read-only permissions for e-commerce settings.
6
- #
7
- # Roles with this permission will be able to view information, also from the admin
8
- # panel, about:
9
- #
10
- # - Tax categories
11
- # - Tax rates
12
- # - Zones
13
- # - Countries
14
- # - States
15
- # - Payment methods
16
- # - Taxonomies
17
- # - Shipping methods
18
- # - Shipping categories
19
- # - Stock locations
20
- # - Stock movements
21
- # - Refund reasons
22
- # - Reimbursement types
23
- # - Return reasons
24
- class ConfigurationDisplay < PermissionSets::Base
25
- class << self
26
- def privilege
27
- :display
28
- end
29
-
30
- def category
31
- :configuration
32
- end
33
- end
34
-
35
- def activate!
36
- can [:read, :admin], Spree::TaxCategory
37
- can [:read, :admin], Spree::TaxRate
38
- can [:read, :admin], Spree::Zone
39
- can [:read, :admin], Spree::Country
40
- can [:read, :admin], Spree::State
41
- can [:read, :admin], Spree::PaymentMethod
42
- can [:read, :admin], Spree::Taxonomy
43
- can [:read, :admin], Spree::ShippingMethod
44
- can [:read, :admin], Spree::ShippingCategory
45
- can [:read, :admin], Spree::StockLocation
46
- can [:read, :admin], Spree::StockMovement
47
- can [:read, :admin], Spree::RefundReason
48
- can [:read, :admin], Spree::ReimbursementType
49
- can [:read, :admin], Spree::ReturnReason
50
- end
51
- end
52
- end
53
- 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,52 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module PermissionSets
5
- # Read and write permissions for e-commerce settings.
6
- #
7
- # Roles with this permission set will have full control over:
8
- #
9
- # - Tax categories
10
- # - Tax rates
11
- # - Zones
12
- # - Countries
13
- # - States
14
- # - Payment methods
15
- # - Taxonomies
16
- # - Shipping methods
17
- # - Shipping categories
18
- # - Stock locations
19
- # - Stock movements
20
- # - Refund reasons
21
- # - Reimbursement types
22
- # - Return reasons
23
- class ConfigurationManagement < PermissionSets::Base
24
- class << self
25
- def privilege
26
- :management
27
- end
28
-
29
- def category
30
- :configuration
31
- end
32
- end
33
-
34
- def activate!
35
- can :manage, Spree::TaxCategory
36
- can :manage, Spree::TaxRate
37
- can :manage, Spree::Zone
38
- can :manage, Spree::Country
39
- can :manage, Spree::State
40
- can :manage, Spree::PaymentMethod
41
- can :manage, Spree::Taxonomy
42
- can :manage, Spree::ShippingMethod
43
- can :manage, Spree::ShippingCategory
44
- can :manage, Spree::StockLocation
45
- can :manage, Spree::StockMovement
46
- can :manage, Spree::RefundReason
47
- can :manage, Spree::ReimbursementType
48
- can :manage, Spree::ReturnReason
49
- end
50
- end
51
- end
52
- 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,28 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module PermissionSets
5
- # Permissions for viewing the admin dashboard.
6
- #
7
- # Roles with this permission set will be able to view the admin dashboard,
8
- # which may or not contain sensitive information depending on
9
- # customizations.
10
- class DashboardDisplay < PermissionSets::Base
11
- class << self
12
- def privilege
13
- :other
14
- end
15
-
16
- def category
17
- :dashboard_display
18
- end
19
- end
20
-
21
- def activate!
22
- Spree.deprecator.warn "The #{self.class.name} module is deprecated. " \
23
- "If you still use dashboards, please copy all controllers and views from #{self.class.name} to your application."
24
- can [:admin, :home], :dashboards
25
- end
26
- end
27
- end
28
- 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,83 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Spree
4
- module PermissionSets
5
- # Permissions for e-commerce customers.
6
- #
7
- # This permission set is always added to the `:default` role, which in turn
8
- # is the default role for all users without any explicit roles.
9
- #
10
- # Permissions include reading and updating orders when the ability's user
11
- # has been assigned as the order's user, unless the order is already
12
- # completed. Same is true for guest checkout orders.
13
- #
14
- # It grants read-only permissions for the following resources typically used
15
- # during a checkout process:
16
- #
17
- # - Zones
18
- # - Countries
19
- # - States
20
- # - Taxons
21
- # - Taxonomies
22
- # - Products
23
- # - Properties
24
- # - Product properties
25
- # - Variants
26
- # - Option types
27
- # - Option values
28
- # - Stock items
29
- # - Stock locations
30
- #
31
- # Abilities with this role can also create refund authorizations for orders
32
- # with the same user, as well as reading and updating the user record and
33
- # their associated cards.
34
- class DefaultCustomer < PermissionSets::Base
35
- class << self
36
- def privilege
37
- :other
38
- end
39
-
40
- def category
41
- :default_customer
42
- end
43
- end
44
-
45
- def activate!
46
- can :read, Country
47
- can :read, OptionType
48
- can :read, OptionValue
49
- can :create, Order do |order, token|
50
- # same user, or both nil
51
- order.user == user ||
52
- # guest checkout order
53
- order.email.present? ||
54
- # via API, just like with show and update
55
- (order.guest_token.present? && token == order.guest_token)
56
- end
57
- can [:show, :update], Order, Order.where(user:) do |order, token|
58
- order.user == user || (order.guest_token.present? && token == order.guest_token)
59
- end
60
- cannot :update, Order do |order|
61
- order.completed?
62
- end
63
- can :create, ReturnAuthorization do |return_authorization|
64
- return_authorization.order.user == user
65
- end
66
- can [:read, :update], CreditCard, user_id: user.id
67
- can :read, Product
68
- can :read, ProductProperty
69
- can :read, Property
70
- can :create, Spree.user_class
71
- can [:show, :update, :update_email], Spree.user_class, id: user.id
72
- can :read, State
73
- can :read, StockItem, stock_location: { active: true }
74
- can :read, StockLocation, active: true
75
- can :read, Taxon
76
- can :read, Taxonomy
77
- can [:save_in_address_book, :remove_from_address_book], Spree.user_class, id: user.id
78
- can [:read, :view_out_of_stock], Variant
79
- can :read, Zone
80
- end
81
- end
82
- end
83
- 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
+ )