Commit 393a28e6

mo khan <mo@mokhan.ca>
2014-10-02 02:35:13
display browser info for each session.
1 parent 48e4dfb
Changed files (5)
app/controllers/admin/sessions_controller.rb
@@ -1,7 +1,7 @@
 module Admin
   class SessionsController < AdminController
     def index
-      @user_sessions = UserSession.active
+      @user_sessions = UserSession.includes(:user, :location).order(created_at: :desc).all
     end
 
     def destroy
app/models/user_session.rb
@@ -27,6 +27,10 @@ class UserSession < ActiveRecord::Base
     end
   end
 
+  def browser
+    @browser ||= BrowserSniffer.new(user_agent)
+  end
+
   class << self
     def authenticate(key)
       self.active.find_by(key: key)
app/views/admin/sessions/index.html.erb
@@ -11,6 +11,10 @@
           <td>ip</td>
           <td>city</td>
           <td>user agent</td>
+          <td>browser</td>
+          <td>version</td>
+          <td>platform</td>
+          <td>platform version</td>
           <td>accessed at</td>
           <td>revoked at</td>
           <td></td>
@@ -23,6 +27,10 @@
             <td><%= user_session.ip %></td>
             <td><%= user_session.location.try(:city) %></td>
             <td><%= user_session.user_agent %></td>
+            <td><%= user_session.browser.form_factor %></td>
+            <td><%= user_session.browser.browser %></td>
+            <td><%= user_session.browser.os %></td>
+            <td><%= user_session.browser.os_version %></td>
             <td><%= time_ago_in_words(user_session.accessed_at) %></td>
             <td><%= time_ago_in_words(user_session.revoked_at) if user_session.revoked_at %></td>
             <td><%= link_to "Revoke", admin_session_path(user_session), method: :delete, class: 'btn btn-danger' %></td>
Gemfile
@@ -38,6 +38,7 @@ gem 'ejs', '~> 1.1.1'
 gem 'js-routes', '~> 0.9.8'
 gem 'geoip'
 gem 'rack-attack'
+gem 'browser_sniffer'
 
 group :development do
   gem 'capistrano', '~> 3.0', require: false
Gemfile.lock
@@ -50,6 +50,7 @@ GEM
       debug_inspector (>= 0.0.1)
     bootstrap-sass (2.3.2.2)
       sass (~> 3.2)
+    browser_sniffer (1.0.7)
     buftok (0.2.0)
     builder (3.2.2)
     bullet (4.13.2)
@@ -339,6 +340,7 @@ DEPENDENCIES
   better_errors
   binding_of_caller
   bootstrap-sass (~> 2.3.0)
+  browser_sniffer
   bullet
   capistrano (~> 3.0)
   capistrano-bundler (~> 1.1)