<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,11 +3,11 @@ class Cms::SessionsController &lt; Cms::ApplicationController
 
   before_filter :redirect_to_cms_site, :only =&gt; [:new]
   layout &quot;cms/login&quot;
-  
+
   def new
-    
+
   end
-  
+
   def create
     logout_keeping_session!
     user = User.authenticate(params[:login], params[:password])
@@ -21,7 +21,7 @@ class Cms::SessionsController &lt; Cms::ApplicationController
       handle_remember_cookie! new_cookie_flag
       flash[:notice] = &quot;Logged in successfully&quot;
       if params[:success_url] # Coming from login portlet
-        redirect_to((!params[:success_url].blank? &amp;&amp; params[:success_url]) || session[:return_to] || &quot;/&quot;)          
+        redirect_to((!params[:success_url].blank? &amp;&amp; params[:success_url]) || session[:return_to] || &quot;/&quot;)
         session[:return_to] = nil
       else
         redirect_back_or_default(cms_home_url)
@@ -30,7 +30,7 @@ class Cms::SessionsController &lt; Cms::ApplicationController
       note_failed_signin
       @login       = params[:login]
       @remember_me = params[:remember_me]
-      flash[:login_error] = &quot;Log in failed&quot;  
+      flash[:login_error] = &quot;Log in failed&quot;
       if params[:success_url] # Coming from login portlet
         if params[:success_url].blank?
           success_url = session[:return_to] || &quot;/&quot;
@@ -42,23 +42,30 @@ class Cms::SessionsController &lt; Cms::ApplicationController
         flash[:success_url] = success_url
         redirect_to request.referrer
       else
-        render :action =&gt; &quot;new&quot; 
-      end 
+        render :action =&gt; &quot;new&quot;
+      end
     end
   end
 
   def destroy
+    logout_user
+    redirect_back_or_default(&quot;/&quot;)
+  end
+
+  protected
+
+  # Pulled this out as a separate method so that modules (like bcms_cas) can override/alias destroy and
+  # not have a redirect happen as a side effect.
+  def logout_user
     logout_killing_session!
     cookies.delete :openSectionNodes
     flash[:notice] = &quot;You have been logged out.&quot;
-    redirect_back_or_default(&quot;/&quot;)
   end
 
-protected
   # Track failed login attempts
   def note_failed_signin
     flash[:error] = &quot;Couldn't log you in as '#{params[:login]}'&quot;
     logger.warn &quot;Failed login for '#{params[:login]}' from #{request.remote_ip} at #{Time.now.utc}&quot;
   end
-  
+
 end</diff>
      <filename>app/controllers/cms/sessions_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -67,5 +67,10 @@ class Cms::SessionsControllerCacheEnabledTest &lt; ActionController::TestCase
     log @response.body
     assert_select &quot;title&quot;, &quot;CMS Login&quot;
   end
-  
+
+  test &quot;destroy&quot; do
+    Cms::SessionsController.any_instance.expects(:logout_user)
+    delete :destroy
+    assert_redirected_to &quot;/&quot; 
+  end
 end</diff>
      <filename>test/functional/cms/sessions_controller_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1c71ae0a39a00f7945ca68df1271a325f1da5f0d</id>
    </parent>
  </parents>
  <author>
    <name>peakpg</name>
    <email>peakpg@gmail.com</email>
  </author>
  <url>http://github.com/browsermedia/browsercms/commit/df8e5f18f0aedf5c753f2deff20def32c3e17eb0</url>
  <id>df8e5f18f0aedf5c753f2deff20def32c3e17eb0</id>
  <committed-date>2009-11-05T09:20:58-08:00</committed-date>
  <authored-date>2009-11-05T09:20:58-08:00</authored-date>
  <message>Added a hook method for SessionController (primary for CAS module)</message>
  <tree>4cbc31cf3ed45679de521ad75c48cfb16039fa65</tree>
  <committer>
    <name>peakpg</name>
    <email>peakpg@gmail.com</email>
  </committer>
</commit>
