aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Florisson2014-12-16 11:26:24 +0100
committerMarc Florisson2014-12-16 11:26:24 +0100
commit7680978296a44eccd89d9ae190c7cf88c75e0f8d (patch)
treee584f765c8a966fb61e692589ca844ecfd63a0cb
parenta0433013264531e825268d0ae1a0da873d368313 (diff)
downloadchouette-core-7680978296a44eccd89d9ae190c7cf88c75e0f8d.tar.bz2
fix user's image display (production environment, networkless context...)
-rw-r--r--Gemfile3
-rw-r--r--Gemfile.lock4
-rw-r--r--app/helpers/users_helper.rb28
3 files changed, 26 insertions, 9 deletions
diff --git a/Gemfile b/Gemfile
index d7cc5a296..51f770a45 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,6 +2,7 @@ source 'http://rubygems.org'
source 'https://rails-assets.org'
gem 'rails', '3.2.18'
+gem 'rest_client'
platforms :jruby do
gem 'activerecord-jdbcpostgresql-adapter', '~> 1.3.3'
@@ -65,7 +66,7 @@ gem 'rails-assets-jquery-tokeninput', '~> 1.7.0'
# Format Output
gem 'json'
-gem 'rubyzip', '~> 1.1.6'
+gem 'rubyzip', '~> 1.1.6'
gem 'roo'
# Controller
diff --git a/Gemfile.lock b/Gemfile.lock
index 6560ec708..26d092689 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -222,6 +222,7 @@ GEM
net-ssh (2.6.2)
net-ssh-gateway (1.1.0)
net-ssh (>= 1.99.1)
+ netrc (0.7.9)
nokogiri (1.5.10)
nokogiri (1.5.10-java)
open4 (1.3.0)
@@ -307,6 +308,8 @@ GEM
rspec (>= 2.0.0.alpha11)
responders (1.0.0)
railties (>= 3.2, < 5)
+ rest_client (1.8.2)
+ netrc (~> 0.7.7)
rgeo (0.3.20)
roo (1.13.2)
nokogiri
@@ -451,6 +454,7 @@ DEPENDENCIES
rb-inotify
remarkable (~> 4.0.0.alpha4)
remarkable_activerecord (~> 4.0.0.alpha4)
+ rest_client
roo
rspec-rails (~> 2.0)
rubyzip (~> 1.1.6)
diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb
index 0ddea8356..0dfc1552f 100644
--- a/app/helpers/users_helper.rb
+++ b/app/helpers/users_helper.rb
@@ -1,16 +1,28 @@
module UsersHelper
def user_gravatar_image_tag(user, size = 64)
- gravatar_image_tag user.email, :alt => "", :class => "preview", :gravatar => { :default => user_default_avatar , :size => size }
+ image_tag user_image(user), :alt => "", :class => "preview", :width => size, :height => size
end
- def user_default_avatar
- return "#{root_url}#{image_path('icons/user.png')}" if Rails.application.config.relative_url_root.blank?
-
- relative_url_root = Rails.application.config.relative_url_root.gsub( /\//, '')
- "#{root_url}#{image_path('icons/user.png')}".
- sub( Regexp.new("/#{relative_url_root}/#{relative_url_root}/"), "/#{relative_url_root}/").
- sub( Regexp.new("/#{relative_url_root}//#{relative_url_root}/"), "/#{relative_url_root}/")
+ def gravatar_hash(user)
+ Digest::MD5.hexdigest( user.email)
+ end
+ def gravatar_url( user)
+ "http://www.gravatar.com/avatar/#{gravatar_hash(user)}?d=404"
+ end
+ def user_image(user)
+ begin
+ gravatar_resource = RestClient.get( gravatar_url( user)){|response, request, result| response }
+ rescue
+ # Happens if network is not available
+ return 'icons/user.png'
+ end
+ if gravatar_resource.code == 404
+ # Happens if user has not registered to gravatar
+ 'icons/user.png'
+ else
+ gravatar_url( user)
+ end
end
end