From 060381e0db8a65ad6908d6ef85b7d986374f0ede Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Mon, 6 Jul 2015 15:50:13 +0200 Subject: [PATCH] Cleanup of avatar use from third party systems. --- app/models/authorization.rb | 25 +++++++++++++------------ app/models/avatar.rb | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/app/models/authorization.rb b/app/models/authorization.rb index 93751c020..94cde865c 100644 --- a/app/models/authorization.rb +++ b/app/models/authorization.rb @@ -42,8 +42,9 @@ class Authorization < ApplicationModel ) # update user link - if avatar - user.update_column( :image, avatar.store_hash ) + if avatar && user.image != avatar.store_hash + user.image = avatar.store_hash + user.save end end end @@ -51,9 +52,13 @@ class Authorization < ApplicationModel end def self.create_from_hash(hash, user = nil) - if user - # save/update avatar + if !user + user = User.create_from_hash!(hash) + end + + # save/update avatar + if hash['info']['image'] avatar = Avatar.add( object: 'User', o_id: user.id, @@ -65,15 +70,10 @@ class Authorization < ApplicationModel ) # update user link - if avatar - user.update_column( :image, avatar.store_hash ) + if avatar && user.image != avatar.store_hash + user.image = avatar.store_hash + user.save end - - # fillup empty attributes - # TODO - - else - user = User.create_from_hash!(hash) end Authorization.create( @@ -89,6 +89,7 @@ class Authorization < ApplicationModel private def delete_user_cache + return if !user user.touch end diff --git a/app/models/avatar.rb b/app/models/avatar.rb index acdfa5cf2..b3b226587 100644 --- a/app/models/avatar.rb +++ b/app/models/avatar.rb @@ -102,7 +102,7 @@ add a avatar # twitter workaround to get bigger avatar images # see also https://dev.twitter.com/overview/general/user-profile-images-and-banners if data[:url] =~ %r{//pbs.twimg.com/}i - data[:url].sub!(/normal\.png$/, 'bigger.png') + data[:url].sub!(/normal\.(png|jpg|gif)$/, 'bigger.\1') end # fetch image