Sha256: 9dc5d689eaf50f91cc25e513333918caaf00bae7417351a0bd4f274814a63182
Contents?: true
Size: 960 Bytes
Versions: 11
Compression:
Stored size: 960 Bytes
Contents
# frozen_string_literal: true module Maquina class ActiveSession < ApplicationRecord belongs_to :user, class_name: "Maquina::User", foreign_key: :maquina_user_id delegate :blocked?, to: :user after_initialize :configure_expiration validates :expires_at, presence: true, comparison: {greater_than: Time.zone.now}, if: ->(session) { (session.new_record? || session.changed.includes?("expires_at")) && Maquina.configuration.session_expiration.present? } validate :non_blocked_user def expired? return false if expires_at.blank? !expires_at.future? end private def non_blocked_user return if user.blank? || !blocked? errors.add(:user, :blocked) end def configure_expiration if new_record? && expires_at.blank? && Maquina.configuration.session_expiration.present? self.expires_at = Time.zone.now.since(Maquina.configuration.session_expiration) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems