Commit 1153a298

mo khan <mo@mokhan.ca>
2013-07-06 21:22:44
add website url and avatar url to the disqus single sign on payload
1 parent caec9e5
Changed files (4)
app/helpers/application_helper.rb
@@ -18,7 +18,11 @@ module ApplicationHelper
   end
 
   def disqus_auth(user = current_user)
-    data = { id: user.id, username: user.name, email: user.email }.to_json
+    if user.has_avatar?
+      data = { id: user.id, username: user.name, email: user.email, :avatar => user.avatar.avatar.url, :url => "https://#{request.host_with_port}/profiles/#{user.to_param}" }.to_json
+    else
+      data = { id: user.id, username: user.name, email: user.email, :url => "https://#{request.host_with_port}/profiles/#{user.to_param}" }.to_json
+    end
     message = Base64.encode64(data).gsub("\n", "")
     timestamp = Time.now.to_i
     signature = OpenSSL::HMAC.hexdigest('sha1', ENV['DISQUS_SECRET_KEY'], "#{message} #{timestamp}")
app/models/user.rb
@@ -44,6 +44,10 @@ class User < ActiveRecord::Base
     self.save!
   end
 
+  def has_avatar?
+    self.avatar && self.avatar.avatar.present?
+  end
+
   def to_param
     "#{id}-#{name.gsub(/[^a-z0-9]+/i, '-')}"
   end
app/views/profiles/show.html.erb
@@ -17,9 +17,6 @@
         <% unless @user.facebook.blank? %>
           <p><a  href="<%= @user.facebook %>" target="_blank"><%= image_tag "f_logo_16x16x32.png", :alt => "Like us on Facebook" %> Like on Facebook</a></p>
         <% end %>
-        <% if @user.latitude && @user.longitude %>
-          <%= image_tag "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=16&markers=#{@user.latitude}%2C#{@user.longitude}" %>
-        <% end %>
       </div>
     </div>
     <% if @nearby_users.any? %>
spec/helpers/application_helper_spec.rb
@@ -2,10 +2,10 @@ require "spec_helper"
 
 describe ApplicationHelper do
   describe :disqus_auth do
-    let(:user) { OpenStruct.new(id: 1, name: 'mo', email: 'test@cakeside.com') }
+    let(:user) { OpenStruct.new(id: 1, name: 'mo', email: 'test@cakeside.com', :to_param => '1-mo') }
 
     before :each do
-      data = { id: user.id, username: user.name, email: user.email }.to_json
+      data = { id: user.id, username: user.name, email: user.email, :url => "https://test.host/profiles/#{user.to_param}" }.to_json
       message = Base64.encode64(data).gsub("\n", "")
       timestamp = Time.now.to_i
       secret = ENV['DISQUS_SECRET_KEY'] = 'secret'