Sha256: 120d50bc98733712bdde36c50b2469c13029662f6f40f0898ab104ab51095aae
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true module DemoMode class Session < ActiveRecord::Base attribute :variant, default: :default validates :persona_name, :variant, presence: true validates :persona, presence: { message: :required }, on: :create, if: :persona_name? belongs_to :signinable, polymorphic: true, optional: true before_create :set_password! delegate :begin_demo, :custom_sign_in?, :display_credentials?, to: :persona, allow_nil: true def signinable_username signinable.public_send(DemoMode.signinable_username_method) end # Heads up: finding a persona is not guaranteed (e.g. past sessions) def persona DemoMode.personas.find { |p| p.name.to_s == persona_name.to_s } end def save_and_generate_account! transaction do save! AccountGenerationJob.perform_later(self) end end private def set_password! self.signinable_password ||= DemoMode.current_password end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
demo_mode-1.3.0 | app/models/demo_mode/session.rb |