Commit e1e23cd2
Changed files (5)
app
controllers
admin
views
admin
sessions
config
spec
controllers
app/controllers/admin/sessions_controller.rb
@@ -0,0 +1,7 @@
+module Admin
+ class SessionsController < AdminController
+ def index
+ @sessions = UserSession.active
+ end
+ end
+end
app/views/admin/sessions/index.html.erb
@@ -0,0 +1,1 @@
+<h1>Active Sessions</h1>
config/routes.rb
@@ -67,6 +67,7 @@ Cake::Application.routes.draw do
resources :photos, only: [:index, :show]
resources :blobs, only: [:index, :show]
resources :errors, only: [:index, :create]
+ resources :sessions, only: [:index]
end
namespace :my do
spec/controllers/admin/sessions_controller_spec.rb
@@ -0,0 +1,26 @@
+require "rails_helper"
+
+module Admin
+ describe SessionsController do
+ context "logged in as admin" do
+ let(:admin) { create(:admin) }
+
+ before :each do
+ http_login(admin)
+ end
+
+ describe "index" do
+ let(:active_session) { build(:user_session) }
+
+ before :each do
+ UserSession.stub(:active).and_return([active_session])
+ end
+
+ it "loads all the active sessions" do
+ get :index
+ expect(assigns(:sessions)).to include(active_session)
+ end
+ end
+ end
+ end
+end
spec/factories.rb
@@ -22,6 +22,13 @@ FactoryGirl.define do
end
factory :user_session, class: UserSession do
+ association :user
+ key SecureRandom.hex(32)
+ ip Faker::Internet.ip_v4_address
+ user_agent Faker::Internet
+ factory :active_session do
+ accessed_at Time.now
+ end
end
factory :favorite do
@@ -48,5 +55,8 @@ FactoryGirl.define do
password 'password'
website { Faker::Internet.http_url }
city 'calgary'
+ factory :admin do
+ is_admin true
+ end
end
end