Commit 7b05fb5

mo khan <mo@mokhan.ca>
2014-04-12 05:08:32
add logout action.
1 parent 5144cbc
Changed files (4)
app/controllers/sessions_controller.rb
@@ -16,6 +16,11 @@ class SessionsController < ApplicationController
     end
   end
 
+  def destroy
+    reset_session
+    redirect_to new_session_path
+  end
+
   private
 
   def load_dependencies(login_command = resolve(:login_command))
app/views/shared/_menu.html.erb
@@ -15,6 +15,7 @@
         <li><%= link_to "Settings", root_path(anchor: '/settings') %></li>
         <li><%= link_to "Profile", root_path(anchor: '/profile') %></li>
         <li><%= link_to "Help", root_path(anchor: '/help') %></li>
+        <li><%= link_to "Logout", session_path('mine'), method: :delete %></li>
       </ul>
     </div>
   </div>
config/routes.rb
@@ -1,5 +1,5 @@
 Mocode::Application.routes.draw do
-  resources :sessions, only: [:new, :create]
+  resources :sessions, only: [:new, :create, :destroy]
   resources :videos, only: [:index]
   get 'dashboard', to: 'dashboard#index'
   root 'dashboard#index'
spec/controllers/sessions_controller_spec.rb
@@ -50,4 +50,14 @@ describe SessionsController do
       end
     end
   end
+
+  context "#destroy" do
+    let(:user_session) { Session.create! }
+
+    it "removes the current session" do
+      delete :destroy, { id: 'mine' }, { user_session_id: user_session.id }
+      session[:user_session_id].should be_nil
+      response.should redirect_to(new_session_path)
+    end
+  end
 end