solidus_core 4.8.0 → 4.8.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 65ac35251045489c988ae7b0f045d1ceaa8e5eb8d1a17b270af8519d9da262fc
|
|
4
|
+
data.tar.gz: d96ab2c3eabbf7b0bd7cb37359e8381c8e5c1746e32345a1c42a740d5f8a917f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: faed629daa09f387fedc413fb1c202cf9f04a268034bfe30d140a022437a537eddef0fefa02d2de47de481b3cd0f66dc716aded47500d1fd7903e33601139957
|
|
7
|
+
data.tar.gz: 73b6283308f00372da233356573f0c44ed4ffb254aba4929850ba90f40da72d323b85d604660e49d4f6678c9d52866dcadb2489a72b15a7b5f3a344efac99d3a
|
data/app/models/spree/order.rb
CHANGED
|
@@ -330,8 +330,15 @@ module Spree
|
|
|
330
330
|
|
|
331
331
|
# Associates the specified user with the order.
|
|
332
332
|
def associate_user!(user, override_email = true)
|
|
333
|
+
user_changed = user_id != user.try(:id)
|
|
333
334
|
self.user = user
|
|
334
335
|
attrs_to_set = {user_id: user.try(:id)}
|
|
336
|
+
|
|
337
|
+
if user_changed
|
|
338
|
+
self.guest_token = nil
|
|
339
|
+
attrs_to_set[:guest_token] = create_token
|
|
340
|
+
end
|
|
341
|
+
|
|
335
342
|
attrs_to_set[:email] = user.try(:email) if override_email
|
|
336
343
|
attrs_to_set[:created_by_id] = user.try(:id) if created_by.blank?
|
|
337
344
|
|
|
@@ -11,7 +11,7 @@ module Spree
|
|
|
11
11
|
# * :gateway_customer_profile_id, :gateway_payment_profile_id (String): Gateway
|
|
12
12
|
# identifiers for a new {CreditCard}, e.g. a one-time token. Raises
|
|
13
13
|
# ActiveRecord::RecordNotFound if either already belongs to a {CreditCard}
|
|
14
|
-
# owned by a different user.
|
|
14
|
+
# owned by a different user or order.
|
|
15
15
|
# @param request_env [Hash] rack env of user creating the payment
|
|
16
16
|
# @param payment [Payment] Internal use only. Instead of making a new payment, change the attributes for an existing one.
|
|
17
17
|
def initialize(order, attributes, payment: nil, request_env: {})
|
|
@@ -57,11 +57,11 @@ module Spree
|
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
# Gateway profile
|
|
60
|
+
# Gateway profile IDs may only be submitted for a new source when they are
|
|
61
61
|
# unknown to the store (e.g. a one-time token) or already belong to the
|
|
62
62
|
# order's user. Raises if either id is stored on a {CreditCard} owned by a
|
|
63
|
-
# different user, so customers cannot pay with another
|
|
64
|
-
# gateway credential.
|
|
63
|
+
# different user or no user, so customers cannot pay with another
|
|
64
|
+
# customer's stored gateway credential.
|
|
65
65
|
def ensure_gateway_profile_ownership!(source_class)
|
|
66
66
|
return unless source_class <= Spree::CreditCard
|
|
67
67
|
|
|
@@ -69,8 +69,10 @@ module Spree
|
|
|
69
69
|
value = source_attributes[attribute]
|
|
70
70
|
next if value.blank?
|
|
71
71
|
|
|
72
|
-
foreign_cards = Spree::CreditCard.where(attribute => value)
|
|
73
|
-
|
|
72
|
+
foreign_cards = Spree::CreditCard.where(attribute => value)
|
|
73
|
+
if order&.user_id
|
|
74
|
+
foreign_cards = foreign_cards.where(user_id: nil).or(foreign_cards.where.not(user_id: order.user_id))
|
|
75
|
+
end
|
|
74
76
|
raise ActiveRecord::RecordNotFound if foreign_cards.exists?
|
|
75
77
|
end
|
|
76
78
|
end
|
data/lib/spree/core/version.rb
CHANGED
|
@@ -111,5 +111,9 @@ module Spree::Preferences
|
|
|
111
111
|
def allowed_admin_form_preference_types
|
|
112
112
|
DEFAULT_ADMIN_FORM_PREFERENCE_TYPES
|
|
113
113
|
end
|
|
114
|
+
|
|
115
|
+
def permitted_preference_attributes
|
|
116
|
+
new.admin_form_preference_names.map { |name| :"preferred_#{name}" }
|
|
117
|
+
end
|
|
114
118
|
end
|
|
115
119
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solidus_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.8.
|
|
4
|
+
version: 4.8.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Solidus Team
|
|
@@ -1123,7 +1123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
1123
1123
|
- !ruby/object:Gem::Version
|
|
1124
1124
|
version: 1.8.23
|
|
1125
1125
|
requirements: []
|
|
1126
|
-
rubygems_version: 4.0.
|
|
1126
|
+
rubygems_version: 4.0.10
|
|
1127
1127
|
specification_version: 4
|
|
1128
1128
|
summary: Essential models, mailers, and classes for the Solidus e-commerce project.
|
|
1129
1129
|
test_files: []
|