Commit d4014e2

mokha <mokha@cisco.com>
2018-09-22 17:03:18
attach user sessions to user
1 parent 643b9d8
Changed files (3)
app/models/current.rb
@@ -2,6 +2,8 @@
 
 class Current < ActiveSupport::CurrentAttributes
   attribute :user, :token
+  attribute :request
+  attribute :session
   attribute :request_id, :user_agent, :ip_address
 
   def user?
@@ -14,9 +16,8 @@ class Current < ActiveSupport::CurrentAttributes
   end
 
   def access(request, session)
-    self.request_id = request.uuid
-    self.user_agent = request.user_agent
-    self.ip_address = request.ip
+    self.request = request
+    self.session = session
     uuid = session[:user_id]
     self.user = User.find_by(uuid: uuid) if uuid.present?
   end
app/models/user.rb
@@ -2,6 +2,8 @@
 
 class User < ApplicationRecord
   has_secure_password
+  has_many :sessions, foreign_key: "user_id", class_name: UserSession.name
+
   validates :email, presence: true, email: true, uniqueness: {
     case_sensitive: false
   }
spec/models/user_spec.rb
@@ -1,4 +1,10 @@
 require 'rails_helper'
 
 RSpec.describe User do
+  describe "#sessions" do
+    subject { create(:user) }
+    let!(:user_session) { create(:user_session, user: subject) }
+
+    specify { expect(subject.sessions).to match_array([user_session]) }
+  end
 end