module Locomotive::Steam::AuthService::ContentEntryAuth

Module inject to the content entry to enable related authentication methods.

Public Instance Methods

valid?() click to toggle source
Calls superclass method
# File lib/locomotive/steam/services/auth_service.rb, line 155
def valid?
  super

  name          = self[:_password_field]
  password      = self[name]
  confirmation  = self["#{name}_confirmation"]

  if password.to_s.size < Locomotive::Steam::AuthService::MIN_PASSWORD_LENGTH
    self.errors.add(name, :too_short, count: Locomotive::Steam::AuthService::MIN_PASSWORD_LENGTH)
  end

  if !password.blank? && password != confirmation
    self.errors.add("#{name}_confirmation", :confirmation, attribute: self._label_of(name))
  end

  set_password(password) if self.errors.empty?

  self.errors.empty?
end

Private Instance Methods

set_password(password) click to toggle source
# File lib/locomotive/steam/services/auth_service.rb, line 177
def set_password(password)
  self[:"#{self[:_password_field]}_hash"] = BCrypt::Password.create(password)

  name = self.attributes.delete(:_password_field)

  self.attributes.delete_if { |_name| _name == name || _name == "#{name}_confirmation" }
end