<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>config/facebooker.yml</filename>
    </added>
    <added>
      <filename>db/migrate/20091020213339_add_users_fb.rb</filename>
    </added>
    <added>
      <filename>public/javascripts/facebooker.js</filename>
    </added>
    <added>
      <filename>public/xd_receiver.html</filename>
    </added>
    <added>
      <filename>public/xd_receiver_ssl.html</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/.autotest</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/CHANGELOG.rdoc</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/COPYING.rdoc</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/Manifest.txt</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/README.rdoc</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/Rakefile</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/TODO.rdoc</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/examples/desktop_login.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/facebooker.gemspec</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook/facebook_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook/templates/config/facebooker.yml</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook/templates/public/javascripts/facebooker.js</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/USAGE</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/facebook_controller_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/templates/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/templates/functional_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/templates/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/templates/view.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_controller/templates/view.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_publisher/facebook_publisher_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_publisher/templates/create_facebook_templates.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_publisher/templates/publisher.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/USAGE</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/facebook_scaffold_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/facebook_style.css</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/functional_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/layout.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/layout.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/style.css</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_edit.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_edit.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_index.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_index.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_new.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_new.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_show.fbml.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/facebook_scaffold/templates/view_show.html.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/publisher/publisher_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/xd_receiver/templates/xd_receiver.html</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/xd_receiver/templates/xd_receiver_ssl.html</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/generators/xd_receiver/xd_receiver_generator.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/init.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/install.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/adapters/adapter_base.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/adapters/bebo_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/adapters/facebook_adapter.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/admin.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/application.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/batch_request.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/data.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/feed.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/logging.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/mobile.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/mock/service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/mock/session.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/model.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/affiliation.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/album.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/applicationproperties.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/applicationrestrictions.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/cookie.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/education_info.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/event.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/family_relative_info.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/friend_list.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/group.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/info_item.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/info_section.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/location.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/notifications.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/page.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/photo.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/tag.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/user.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/video.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/models/work_info.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/parser.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/backwards_compatible_param_checks.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/controller.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/cucumber.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/cucumber/world.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/extensions/action_controller.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/extensions/action_view.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/extensions/rack_setup.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/extensions/routing.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_form_builder.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_pretty_errors.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_request_fix.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_request_fix_2-3.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_session_handling.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/facebook_url_rewriting.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/helpers.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/helpers/fb_connect.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/integration_session.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/profile_publisher_extensions.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/publisher.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/routing.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/test_helpers.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/rails/utilities.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/server_cache.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service/base_service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service/curl_service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service/net_http_service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service/typhoeus_multi_service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/service/typhoeus_service.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/session.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/facebooker/version.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/net/http_multipart_post.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/rack/facebook.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/tasks/facebooker.rake</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/tasks/facebooker.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/lib/tasks/tunnel.rake</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/rails/init.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/setup.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/templates/layout.erb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/adapters_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/admin_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/application_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/batch_request_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/data_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/logging_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/mobile_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/model_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/models/event_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/models/page_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/models/photo_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/models/user_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/rails/facebook_request_fix_2-3_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/rails/facebook_url_rewriting_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/rails/integration_session_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/rails/publisher_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/rails_integration_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/server_cache_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/service_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker/session_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/facebooker_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_only_parameters.txt</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file.txt</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/fixtures/multipart_post_body_with_single_file_that_has_nil_key.txt</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/net/http_multipart_post_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/rack/facebook_test.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/rails_test_helper.rb</filename>
    </added>
    <added>
      <filename>vendor/plugins/facebooker/test/test_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -20,7 +20,10 @@ class ApplicationController &lt; ActionController::Base
   META_DESCRIPTION = &quot;Spot.Us enables the public to commission journalists to do investigations on important and perhaps overlooked stories. &quot; + 
                   &quot;We are an open source project, to pioneer \&quot;community funded reporting.\&quot;&quot;
   META_KEYWORDS = &quot;journalism, reporting, community, local, news, open source, media, donation, creative commons&quot;
-  #protect_from_forgery
+  
+  before_filter :set_facebook_session
+  helper_method :facebook_session
+  
 
   def current_network
     subdomain = current_subdomain.downcase if current_subdomain</diff>
      <filename>app/controllers/application_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -69,6 +69,20 @@ class UsersController &lt; ApplicationController
       render :action =&gt; 'password'
     end
   end
+  
+  # facebook
+  def link_user_accounts
+      puts &quot;flipper&quot;
+    if self.current_user.nil?
+      #register with fb
+      User.create_from_fb_connect(facebook_session.user)
+    else
+      #connect accounts
+      self.current_user.link_fb_connect(facebook_session.user.id) unless self.current_user.fb_user_id == facebook_session.user.id
+    end
+    redirect_to '/'
+  end
+  
 end
 
 </diff>
      <filename>app/controllers/users_controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -106,6 +106,7 @@ class User &lt; ActiveRecord::Base
 
   before_validation_on_create :generate_activation_code
   before_save :encrypt_password, :unless =&gt; lambda {|user| user.password.blank? }
+  after_create :register_user_to_fb
 
   has_attached_file :photo,
                     :styles      =&gt; { :thumb =&gt; '50x50#' },
@@ -149,6 +150,53 @@ class User &lt; ActiveRecord::Base
       raise ArgumentError, &quot;invalid subclass of #{inspect}&quot;
     end
   end
+  
+################### facebook ######################
+  #find the user in the database, first by the facebook user id and if that fails through the email hash
+  def self.find_by_fb_user(fb_user)
+    User.find_by_fb_user_id(fb_user.uid) || User.find_by_email_hash(fb_user.email_hashes)
+  end
+  #Take the data returned from facebook and create a new user from it.
+  #We don't get the email from Facebook and because a facebooker can only login through Connect we just generate a unique login name for them.
+  #If you were using username to display to people you might want to get them to select one after registering through Facebook Connect
+  def self.create_from_fb_connect(fb_user)
+    new_facebooker = User.new(:name =&gt; fb_user.name, :login =&gt; &quot;facebooker_#{fb_user.uid}&quot;, :password =&gt; &quot;&quot;, :email =&gt; &quot;&quot;)
+    new_facebooker.fb_user_id = fb_user.uid.to_i
+    #We need to save without validations
+    new_facebooker.save(false)
+    new_facebooker.register_user_to_fb
+  end
+
+  #We are going to connect this user object with a facebook id. But only ever one account.
+  def link_fb_connect(fb_user_id)
+    unless fb_user_id.nil?
+      #check for existing account
+      existing_fb_user = User.find_by_fb_user_id(fb_user_id)
+      #unlink the existing account
+      unless existing_fb_user.nil?
+        existing_fb_user.fb_user_id = nil
+        existing_fb_user.save(false)
+      end
+      #link the new one
+      self.fb_user_id = fb_user_id
+      save(false)
+    end
+  end
+
+  #The Facebook registers user method is going to send the users email hash and our account id to Facebook
+  #We need this so Facebook can find friends on our local application even if they have not connect through connect
+  #We hen use the email hash in the database to later identify a user from Facebook with a local user
+  def register_user_to_fb
+    users = {:email =&gt; email, :account_id =&gt; id}
+    Facebooker::User.register([users])
+    self.email_hash = Facebooker::User.hash_email(email)
+    save(false)
+  end
+  def facebook_user?
+    return !fb_user_id.nil? &amp;&amp; fb_user_id &gt; 0
+  end
+
+########### end facebook ##############
 
   def citizen?
     self.is_a? Citizen</diff>
      <filename>app/models/user.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-%head
+%head{:xmlns =&gt; &quot;http://www.w3.org/1999/xhtml&quot;,&quot;xmlns:fb&quot;=&gt;&quot;http://www.facebook.com/2008/fbml&quot;}
   %meta{ :name =&gt; &quot;description&quot;, :content =&gt; @meta_description }/
   %meta{ :name =&gt; &quot;keywords&quot;, :content =&gt; @meta_keywords }/
 </diff>
      <filename>app/views/layouts/_head.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,43 @@
-%ul.user-header-nav
-  #logged_in.hide
-    %li.no-pipe
-      Hello,
-      %span.current_user_full_name
-    %li#current_balance_line
-    %li
-      = link_to &quot;My Spot&quot;, myspot_profile_path
-    %li.no-pipe
-      = link_to &quot;Logout&quot;, destroy_session_path
-  #not_logged_in.hide
-    %li
-      = link_to &quot;Register&quot;, new_session_path, :rel =&gt; 'facebox'
-    %li.no-pipe
-      = link_to &quot;Login&quot;, new_session_path, :rel =&gt; 'facebox', :id =&gt; &quot;sign_in&quot;
+/ %ul.user-header-nav
+/   #logged_in.hide
+/     %li.no-pipe
+/       Hello,
+/       %span.current_user_full_name
+/     %li#current_balance_line
+/     %li
+/       = link_to &quot;My Spot&quot;, myspot_profile_path
+/     %li.no-pipe
+/       = link_to &quot;Logout&quot;, destroy_session_path
+/   #not_logged_in.hide
+/     %li
+/       = link_to &quot;Register&quot;, new_session_path, :rel =&gt; 'facebox'
+/     %li.no-pipe
+/       = link_to &quot;Login&quot;, new_session_path, :rel =&gt; 'facebox', :id =&gt; &quot;sign_in&quot;
+/       =# fb_login_button('window.location = &quot;/users/link_user_accounts&quot;;')
+- if logged_in?
+  %ul.user-header-nav
+    #logged_in
+      %li.no-pipe
+        Hello,
+        %span.current_user_full_name
+      %li#current_balance_line
+      %li
+        = link_to &quot;My Spot&quot;, myspot_profile_path
+      %li.no-pipe
+      - if current_user.facebook_user?
+        %a{:href=&gt;&quot;#&quot;, :onclick=&gt;'FB.Connect.logoutAndRedirect(&quot;/logout&quot;)'}
+          Logout
+      - else
+        = fb_login_button('window.location = &quot;/users/link_user_accounts&quot;;')
+        = link_to 'Logout', destroy_session_path
+- else
+  %ul.user-header-nav
+    #not_logged_in
+      %li
+        = link_to &quot;Register&quot;, new_session_path, :rel =&gt; 'facebox'
+      %li.no-pipe
+        = link_to &quot;Login&quot;, new_session_path, :rel =&gt; 'facebox', :id =&gt; &quot;sign_in&quot;
+        = fb_login_button('window.location = &quot;/users/link_user_accounts&quot;;')
 
 .slogan
   %span.pink Community</diff>
      <filename>app/views/layouts/_user_header.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,8 @@
 %html
   = render :partial =&gt; 'layouts/head'
   %body{ :class =&gt; body_class }
+    = fb_connect_javascript_tag
+    = init_fb_connect &quot;XFBML&quot;
     #user-header
       = render :partial =&gt; 'layouts/user_header'
     .body-content</diff>
      <filename>app/views/layouts/application.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,11 @@ ActionController::Routing::Routes.draw do |map|
   map.resources :pitches, :member =&gt; {:feature =&gt; :put, :unfeature =&gt; :put, :half_fund =&gt; :put, :fully_fund =&gt; :put, :show_support =&gt; :put, :apply_to_contribute =&gt; :get, :assign_fact_checker =&gt; :put, :blog_posts =&gt; :get}, :has_many =&gt; :comments do |pitch|
     pitch.resources :posts
   end
-
+  
+  # facebook acct link
+  #map.resources :users, :collection =&gt; {:link_user_accounts =&gt; :get}
+  map.connect &quot;users/link_user_accounts&quot;, :controller =&gt; &quot;users&quot;, :action =&gt; &quot;link_user_accounts&quot;
+  
   # TODO: remove when done
   map.resources :ui
 </diff>
      <filename>config/routes.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,18 @@ module AuthenticatedSystem
     # Accesses the current user from the session. 
     # Future calls avoid the database because nil is not equal to false.
     def current_user
-      @current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie) unless @current_user == false
+      #@current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie) unless @current_user == false
+      # supporting facebooker/facebook connect
+      @current_user ||= (login_from_session || login_from_basic_auth || login_from_cookie || login_from_fb) unless @current_user == false 
     end
-
+    
+    # facebook login
+    def login_from_fb
+      if facebook_session
+        self.current_user = User.find_by_fb_user(facebook_session.user)
+      end
+    end
+    
     # Store the given user id in the session.
     def current_user=(new_user)
       session[:user_id] = new_user ? new_user.id : nil</diff>
      <filename>lib/authenticated_system.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bbcef7ab750c0b4bed266ad124604ac60c07d898</id>
    </parent>
  </parents>
  <author>
    <name>Dan Newman</name>
    <email>dpnewman@gmail.com</email>
  </author>
  <url>http://github.com/spot-us/spot-us/commit/579c6dc0c9fbb19082cf8477e5de08ee455bf38f</url>
  <id>579c6dc0c9fbb19082cf8477e5de08ee455bf38f</id>
  <committed-date>2009-10-20T16:52:32-07:00</committed-date>
  <authored-date>2009-10-20T16:52:32-07:00</authored-date>
  <message>Facebook Integrate</message>
  <tree>1c96f0aeaa918bf06b0164f259e6ac9e9bc21be6</tree>
  <committer>
    <name>Dan Newman</name>
    <email>dpnewman@gmail.com</email>
  </committer>
</commit>
