class UserSession

Public Instance Methods

access(request, tracking=true) click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 38
def access(request, tracking=true)
  self.accessed_at = Time.now
  self.ip = request.remote_ip if tracking
  self.user_agent = request.user_agent if tracking
  save!
end
active?() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 12
def active?
  !logged_out? && !revoked?
end
logged_out?() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 16
def logged_out?
  logged_out_at.present?
end
logout() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 33
def logout
  self.logged_out_at = Time.now
  save!
end
revoked?() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 20
def revoked?
  revoked_at.present?
end
sudo() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 28
def sudo
  self.sudo_enabled_at = Time.now
  save!
end
sudo?() click to toggle source
# File lib/generators/authkit/templates/app/models/user_session.rb, line 24
def sudo?
  sudo_enabled_at.present? && sudo_enabled_at > 1.hour.ago
end

Private Instance Methods

set_remember_token() click to toggle source

The tokens created by this method have unique indexes but collisions are very unlikely (1/64^32). Because of this there shouldn't be a conflict. If one occurs the ActiveRecord::StatementInvalid or ActiveRecord::RecordNotUnique exeception should bubble up.

# File lib/generators/authkit/templates/app/models/user_session.rb, line 51
def set_remember_token
  self.remember_token = SecureRandom.urlsafe_base64(32) if self.remember_token.blank?
end