Module: Spree::UserMethods::SkipPasswordValidation
- Defined in:
- app/models/concerns/spree/user_methods.rb
Overview
Opt-in escape hatch for admin-side customer creation. When the host ‘Spree::User` includes Devise’s ‘:validatable`, password presence is enforced on every create; admin-created customers don’t pick a password upfront — they claim the account later via password reset. The admin Customers controller flips ‘skip_password_validation = true` when no password was supplied; the storefront registration path never sets it, so customer self-signup still requires a password.
Prepended (not just defined) so it sits above Devise’s own ‘password_required?` and can fall through with `super` when the flag isn’t set. On ‘LegacyUser` (gem default, no Devise) `super` raises NoMethodError if invoked — but the early return covers the only branch that ever reaches this method on that path, and `LegacyUser` doesn’t call ‘password_required?` at all, so the override is a no-op there.
Instance Method Summary collapse
Instance Method Details
#password_required? ⇒ Boolean
31 32 33 34 |
# File 'app/models/concerns/spree/user_methods.rb', line 31 def password_required? return false if skip_password_validation && encrypted_password.blank? && password.blank? super end |