class Lato::User
def accept_invitation(params)
def accept_invitation(params) invitation = Lato::Invitation.find_by(id: params[:id], accepted_code: params[:accepted_code]) if !invitation || invitation.accepted? || invitation.email != email errors.add(:base, :invitation_invalid) return end ActiveRecord::Base.transaction do raise ActiveRecord::Rollback unless save && invitation.update( accepted_at: Time.now, lato_user_id: id ) true end end
def destroy_with_confirmation(params)
def destroy_with_confirmation(params) unless params[:email_confirmation] == email errors.add(:email, :not_correct) return end destroy end
def full_name
def full_name "#{last_name} #{first_name}" end
def request_recover_password(params)
def request_recover_password(params) user = Lato::User.find_by(email: params[:email]) unless user errors.add(:email, :not_registered) return end code = SecureRandom.hex.upcase delivery = Lato::UserMailer.password_update_mail(user.id, code).deliver_now unless delivery errors.add(:base, :email_sending_error) return end self.id = user.id reload password_update_code.value = code true end
def request_verify_email
def request_verify_email if email_verification_semaphore.value errors.add(:base, :email_verification_limit) return end code = SecureRandom.hex.upcase delivery = Lato::UserMailer.email_verification_mail(id, code).deliver_now unless delivery errors.add(:base, :email_sending_error) return end email_verification_code.value = code email_verification_semaphore.value = true true end
def signin(params)
def signin(params) self.email = params[:email] user = Lato::User.find_by(email: params[:email]) unless user errors.add(:email, :not_correct) return end unless user.authenticate(params[:password]) errors.add(:password, :not_correct) return end self.id = user.id reload begin lato_log_user_signins.create( ip_address: params[:ip_address], user_agent: params[:user_agent] ) rescue StandardError => e Rails.logger.error(e) end true end
def update_accepted_privacy_policy_version(params)
def update_accepted_privacy_policy_version(params) unless params[:confirm] errors.add(:base, :privacy_policy_invalid) return end update(accepted_privacy_policy_version: Lato.config.legal_privacy_policy_version) end
def update_accepted_terms_and_conditions_version(params)
def update_accepted_terms_and_conditions_version(params) unless params[:confirm] errors.add(:base, :terms_and_conditions_invalid) return end update(accepted_terms_and_conditions_version: Lato.config.legal_terms_and_conditions_version) end
def update_password(params)
def update_password(params) unless password_update_code.value errors.add(:base, :password_update_code_expired) return end unless password_update_code.value == params[:code] errors.add(:base, :password_update_code_invalid) return end password_update_code.value = nil update(params.permit(:password, :password_confirmation)) end
def valid_accepted_privacy_policy_version?
def valid_accepted_privacy_policy_version? @valid_accepted_privacy_policy_version ||= accepted_privacy_policy_version >= Lato.config.legal_privacy_policy_version end
def valid_accepted_terms_and_conditions_version?
def valid_accepted_terms_and_conditions_version? @valid_accepted_terms_and_conditions_version ||= accepted_terms_and_conditions_version >= Lato.config.legal_terms_and_conditions_version end
def verify_email(params)
def verify_email(params) unless email_verification_code.value errors.add(:base, :email_verification_code_expired) return end unless email_verification_code.value == params[:code] errors.add(:base, :email_verification_code_invalid) return end email_verification_code.value = nil email_verification_semaphore.value = nil update_column(:email_verified_at, Time.now) true end