<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -55,16 +55,16 @@ module OpenidEnabled
         identifier = params[:openid_url]
         if identifier.nil?
           flash[:error] = &quot;OpenID URL not given&quot;
-          redirect_to failed_login_redirect
+          redirect_to ( params[:failed_login_redirects_to] || failed_login_redirect )
           return
         end
         oidreq = consumer.begin(identifier)
       rescue OpenID::OpenIDError =&gt; e
         flash[:error] = &quot;Discovery failed for #{identifier}: #{e}&quot;
-        redirect_to failed_login_redirect
+        redirect_to ( params[:failed_login_redirects_to] || failed_login_redirect )
         return
       end
-      return_to = url_for :action =&gt; :complete_login
+      return_to = url_for :action =&gt; :complete_login, :login_redirect =&gt; ( params[:login_redirects_to] || login_redirect ), :failed_login_redirect =&gt; ( params[:failed_login_redirects_to] || failed_login_redirect )
       realm = url_for :action =&gt; :index
       
       if oidreq.send_redirect?(realm, return_to, params[:immediate])
@@ -86,17 +86,21 @@ module OpenidEnabled
         else
           flash[:error] = &quot;Verification failed: #{oidresp.message}&quot;
         end
+        redirect_to params[:failed_login_redirect]
       when OpenID::Consumer::SUCCESS
         flash[:notice] = (&quot;Verification of #{oidresp.display_identifier}&quot;\
                           &quot; succeeded.&quot;)
         session[openid_session_sym] = oidresp.display_identifier
+        redirect_to params[:login_redirect]
       when OpenID::Consumer::SETUP_NEEDED
         flash[:notice] = &quot;Immediate request failed - Setup Needed&quot;
+        redirect_to params[:failed_login_redirect]
       when OpenID::Consumer::CANCEL
         flash[:notice] = &quot;OpenID transaction cancelled.&quot;
+        redirect_to params[:failed_login_redirect]
       else
+        redirect_to params[:login_redirect]
       end
-      redirect_to login_redirect
     end
 
     def consumer</diff>
      <filename>lib/openid_enabled.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>74d23ab34fe96aa11f901385f446b835ac1d1bdf</id>
    </parent>
  </parents>
  <author>
    <name>madnificent</name>
    <email>madnificent@gmail.com</email>
  </author>
  <url>http://github.com/madnificent/openid_enabled/commit/c8fa4fce99f1c25519ae0182b0558028b23e5aa7</url>
  <id>c8fa4fce99f1c25519ae0182b0558028b23e5aa7</id>
  <committed-date>2008-08-11T14:22:48-07:00</committed-date>
  <authored-date>2008-08-11T14:22:48-07:00</authored-date>
  <message>Enabled a way to specify where a failed and a successfull login should redirect to on a per-commit basis.

This works by adding hidden fields to the login-form.  There are two meaningfull fields: login_redirects_to and failed_login_redirects_to.
The names are self-explanatory and an example login-form looks like

&lt;% form_tag start_login_users_path, :method =&gt; :get do -%&gt;
&lt;%= text_field_tag :openid_url %&gt;
&lt;%= hidden_field_tag 'login_redirects_to', cities_path %&gt;
&lt;%= hidden_field_tag 'failed_login_redirects_to', users_path %&gt;
&lt;%= submit_tag 'OpenIDfy me!' %&gt;
&lt;% end -%&gt;</message>
  <tree>da18b1a8f836a433befdb6fe20ef4bb4bc5c9f6d</tree>
  <committer>
    <name>madnificent</name>
    <email>madnificent@gmail.com</email>
  </committer>
</commit>
