Commit 393a28e6
Changed files (5)
app
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)