class Signup
Multi-model form support object for signup and user creation
Attributes
auth[RW]
auth_params[RW]
email[RW]
skip_email_confirmation[RW]
terms_of_service[RW]
user[RW]
Public Class Methods
new_with_oauth(auth_params, signup_params)
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 37 def self.new_with_oauth(auth_params, signup_params) signup = Signup.new(signup_params) signup.set_auth_params(auth_params) signup end
Public Instance Methods
has_auth?(provider)
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 80 def has_auth?(provider) self.auth.provider == provider.to_s if self.auth end
persisted?()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 44 def persisted? false end
save()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 52 def save if valid? persist! send_confirmation! unless skip_email_confirmation send_welcome! true else false end end
save!()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 48 def save! raise ActiveRecord::RecordNotSaved unless save end
set_auth_params(auth_params)
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 84 def set_auth_params(auth_params) self.auth_params = auth_params self.email = self.auth.try(:email) if self.email.blank? self.first_name = self.auth.try(:first_name) if self.first_name.blank? self.last_name = self.auth.try(:last_name) if self.last_name.blank? <% if username? %>self.username = self.auth.try(:username) if self.username.blank? <% end %>self.skip_email_confirmation = true # We need to reassign the user fields if the user is already created self.user.attributes = user_params if self.user self.auth end
Private Instance Methods
persist!()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 111 def persist! ActiveRecord::Base.transaction do self.user.save! end end
send_confirmation!()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 117 def send_confirmation! self.user.send_confirmation if self.email end
send_welcome!()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 121 def send_welcome! self.user.send_welcome if self.email end
user_params()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 125 def user_params { email: self.email, <% if username? %>username: self.username, <% end %>password: self.password, password_confirmation: self.password_confirmation, first_name: self.first_name, last_name: self.last_name, bio: self.bio, website: self.website, phone_number: self.phone_number, time_zone: self.time_zone } end
validate_models()
click to toggle source
# File lib/generators/authkit/templates/app/forms/signup.rb, line 101 def validate_models self.user.errors.each { |k, v| errors.add(k, v) } unless self.user.valid? <% if oauth? %> if self.auth.present? self.auth.errors.each { |k, v| errors.add(k, v) } unless self.auth.valid? end <% end %> end