Commit 5c811c9e

mo khan <mo@mokhan.ca>
2014-08-16 19:28:05
creates views to display all user sessions.
1 parent 0a13774
Changed files (4)
app
controllers
views
spec
app/controllers/admin/sessions_controller.rb
@@ -1,7 +1,7 @@
 module Admin
   class SessionsController < AdminController
     def index
-      @sessions = UserSession.active
+      @user_sessions = UserSession.active
     end
 
     def destroy
app/views/admin/sessions/index.html.erb
@@ -1,1 +1,30 @@
-<h1>Active Sessions</h1>
+<div class="row-fluid">
+  <div class="span12">
+    <%= render :partial => 'admin/shared/admin_nav' %>
+    <h1>Users Sessions</h1>
+    <table class="table table-striped table-condensed">
+      <thead>
+        <tr>
+          <td>user</td>
+          <td>ip</td>
+          <td>user agent</td>
+          <td>accessed at</td>
+          <td>revoked at</td>
+          <td></td>
+        </tr>
+      </thead>
+      <tbody>
+        <%- @user_sessions.each do |user_session| %>
+          <tr>
+            <td><%= link_to user_session.user.name, admin_user_path(user_session.user) %></td>
+            <td><%= user_session.ip %></td>
+            <td><%= user_session.user_agent %></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>
+          </tr>
+        <% end %>
+      </tbody>
+    </table>
+  </div>
+</div>
app/views/admin/shared/_admin_nav.html.erb
@@ -5,4 +5,5 @@
   <li><%= link_to "Subscriptions", admin_subscriptions_path %></li>
   <li><%= link_to "Photos", admin_photos_path %></li>
   <li><%= link_to "Blobs", admin_blobs_path %></li>
+  <li><%= link_to "Sessions", admin_sessions_path %></li>
 </ul>
spec/controllers/admin/sessions_controller_spec.rb
@@ -18,7 +18,7 @@ module Admin
 
         it "loads all the active sessions" do
           get :index
-          expect(assigns(:sessions)).to include(active_session)
+          expect(assigns(:user_sessions)).to include(active_session)
         end
       end